Merge branch 'dev' into updateMenu
This commit is contained in:
@ -368,3 +368,14 @@ drone:
|
||||
chat:
|
||||
server:
|
||||
port: 19099
|
||||
# rabbitmq 配置
|
||||
rabbitmq:
|
||||
exchange-name: dev-normal-exchange
|
||||
queue-name: dev-normal-queue
|
||||
routing-key: dev.normal.routing.key
|
||||
delay-exchange-name: dev-delay-queue
|
||||
delay-queue-name: dev-delay-exchange
|
||||
delay-routing-key: dev.delay.routing.key
|
||||
dead-letter-exchange: dev-dlx-exchange
|
||||
dead-letter-queue: dev-dlx-queue
|
||||
dead-letter-routing-key: dev.dlx.routing.key
|
||||
|
||||
@ -343,3 +343,14 @@ drone:
|
||||
chat:
|
||||
server:
|
||||
port: 18088
|
||||
# rabbitmq 配置
|
||||
rabbitmq:
|
||||
exchange-name: local-normal-exchange
|
||||
queue-name: local-normal-queue
|
||||
routing-key: local.normal.routing.key
|
||||
delay-exchange-name: local-delay-queue
|
||||
delay-queue-name: local-delay-exchange
|
||||
delay-routing-key: local.delay.routing.key
|
||||
dead-letter-exchange: local-dlx-exchange
|
||||
dead-letter-queue: local-dlx-queue
|
||||
dead-letter-routing-key: local.dlx.routing.key
|
||||
|
||||
@ -358,3 +358,14 @@ drone:
|
||||
chat:
|
||||
server:
|
||||
port: 19099
|
||||
# rabbitmq 配置
|
||||
rabbitmq:
|
||||
exchange-name: prod-normal-exchange
|
||||
queue-name: prod-normal-queue
|
||||
routing-key: prod.normal.routing.key
|
||||
delay-exchange-name: prod-delay-queue
|
||||
delay-queue-name: prod-delay-exchange
|
||||
delay-routing-key: prod.delay.routing.key
|
||||
dead-letter-exchange: prod-dlx-exchange
|
||||
dead-letter-queue: prod-dlx-queue
|
||||
dead-letter-routing-key: prod.dlx.routing.key
|
||||
|
||||
@ -95,7 +95,13 @@ spring:
|
||||
deserialization:
|
||||
# 允许对象忽略json中不存在的属性
|
||||
fail_on_unknown_properties: false
|
||||
|
||||
rabbitmq:
|
||||
host: 192.168.110.2
|
||||
port: 5672
|
||||
username: admin
|
||||
password: yuanjiexny
|
||||
publisher-returns: true
|
||||
publisher-confirm-type: correlated
|
||||
# Sa-Token配置
|
||||
sa-token:
|
||||
# token名称 (同时也是cookie名称)
|
||||
@ -305,10 +311,12 @@ springdoc:
|
||||
packages-to-scan: org.dromara.ai
|
||||
- group: 31.投标管理模块
|
||||
packages-to-scan: org.dromara.bidding
|
||||
- group: 33.机械模块
|
||||
packages-to-scan: org.dromara.mechanical.jxgl
|
||||
- group: 32.设备模块
|
||||
packages-to-scan: org.dromara.device
|
||||
- group: 33.摄像头模块
|
||||
packages-to-scan: org.dromara.other
|
||||
- group: 34.机械模块
|
||||
packages-to-scan: org.dromara.mechanical
|
||||
# knife4j的增强配置,不需要增强可以不配
|
||||
knife4j:
|
||||
enable: true
|
||||
|
||||
@ -0,0 +1,146 @@
|
||||
package org.dromara.common.core.utils;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.TimeZone;
|
||||
|
||||
/**
|
||||
* 时间戳转换工具类(包含时分秒提取)
|
||||
*/
|
||||
public class TimestampUtils {
|
||||
|
||||
// 默认时区(东八区)
|
||||
private static final TimeZone DEFAULT_TIME_ZONE = TimeZone.getTimeZone("GMT+8");
|
||||
|
||||
// 完整日期格式
|
||||
private static final String FULL_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
|
||||
|
||||
// 时分秒格式
|
||||
private static final String TIME_FORMAT = "HH:mm:ss";
|
||||
|
||||
// 日期格式
|
||||
private static final String DATE_FORMAT = "yyyy-MM-dd";
|
||||
|
||||
/**
|
||||
* 将日期字符串转为秒级时间戳(优化版)
|
||||
* 支持格式:"2025-12-03 23:59:59"、"2025-12-03"等
|
||||
* @param dateStr 日期字符串
|
||||
* @return 秒级时间戳
|
||||
*/
|
||||
public static Long parseDateToTimestamp(String dateStr) {
|
||||
if (StrUtil.isBlank(dateStr)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 使用Hutool的DateUtil进行智能解析(推荐)
|
||||
try {
|
||||
Date date = DateUtil.parse(dateStr);
|
||||
return date.getTime() / 1000L; // 转为秒级时间戳
|
||||
} catch (Exception e) {
|
||||
throw new IllegalArgumentException(
|
||||
String.format("日期格式错误:%s,支持格式:yyyy-MM-dd HH:mm:ss、yyyy-MM-dd等", dateStr)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将时间戳转换为完整日期格式(yyyy-MM-dd HH:mm:ss)
|
||||
*/
|
||||
public static String formatTimestamp(Object timestamp) {
|
||||
if (timestamp == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String timestampStr = timestamp.toString().trim();
|
||||
if (StrUtil.isBlank(timestampStr)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Long time = parseToMilliseconds(timestampStr);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(FULL_DATE_FORMAT);
|
||||
sdf.setTimeZone(DEFAULT_TIME_ZONE);
|
||||
return sdf.format(new Date(time));
|
||||
}
|
||||
|
||||
/**
|
||||
* 提取时间戳中的时分秒部分(HH:mm:ss)
|
||||
*/
|
||||
public static String extractTime(Object timestamp) {
|
||||
if (timestamp == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String timestampStr = timestamp.toString().trim();
|
||||
if (StrUtil.isBlank(timestampStr)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Long time = parseToMilliseconds(timestampStr);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(TIME_FORMAT);
|
||||
sdf.setTimeZone(DEFAULT_TIME_ZONE);
|
||||
return sdf.format(new Date(time));
|
||||
}
|
||||
|
||||
/**
|
||||
* 提取时间戳中的日期部分(yyyy-MM-dd)
|
||||
*/
|
||||
public static String extractDate(Object timestamp) {
|
||||
if (timestamp == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String timestampStr = timestamp.toString().trim();
|
||||
if (StrUtil.isBlank(timestampStr)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Long time = parseToMilliseconds(timestampStr);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
|
||||
sdf.setTimeZone(DEFAULT_TIME_ZONE);
|
||||
return sdf.format(new Date(time));
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析时间戳字符串为毫秒级时间戳
|
||||
*/
|
||||
private static Long parseToMilliseconds(String timestampStr) {
|
||||
try {
|
||||
Long time = Long.parseLong(timestampStr);
|
||||
// 10位秒级时间戳转为13位毫秒级
|
||||
if (timestampStr.length() == 10) {
|
||||
time = time * 1000;
|
||||
}
|
||||
return time;
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IllegalArgumentException("时间戳格式错误:" + timestampStr);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时间戳对应的小时
|
||||
*/
|
||||
public static int getHour(Object timestamp) {
|
||||
String timeStr = extractTime(timestamp);
|
||||
return Integer.parseInt(timeStr.split(":")[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时间戳对应的分钟
|
||||
*/
|
||||
public static int getMinute(Object timestamp) {
|
||||
String timeStr = extractTime(timestamp);
|
||||
return Integer.parseInt(timeStr.split(":")[1]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时间戳对应的秒
|
||||
*/
|
||||
public static int getSecond(Object timestamp) {
|
||||
String timeStr = extractTime(timestamp);
|
||||
return Integer.parseInt(timeStr.split(":")[2]);
|
||||
}
|
||||
}
|
||||
@ -29,6 +29,10 @@
|
||||
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-amqp</artifactId>
|
||||
</dependency>
|
||||
<!-- TwelveMonkeys ImageIO 扩展 -->
|
||||
<dependency>
|
||||
<groupId>com.twelvemonkeys.imageio</groupId>
|
||||
|
||||
@ -3,10 +3,14 @@ package org.dromara.complaintBox.controller;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.complaintBox.domain.bo.BusComplaintBoxDisposeLoggingBo;
|
||||
import org.dromara.complaintBox.domain.bo.BusComplaintBoxMessageLoggingBo;
|
||||
import org.dromara.complaintBox.domain.vo.BusComplaintBoxDisposeLoggingVo;
|
||||
import org.dromara.complaintBox.domain.vo.ComplaintBoxCountVo;
|
||||
import org.dromara.complaintBox.domain.vo.DetailsOfTheOpinionVo;
|
||||
import org.dromara.complaintBox.service.IBusComplaintBoxDisposeLoggingService;
|
||||
import org.dromara.complaintBox.service.IBusComplaintBoxMessageLoggingService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -37,24 +41,35 @@ import java.util.List;
|
||||
@RequestMapping("/complaintBox/complaintBox")
|
||||
public class BusComplaintBoxController extends BaseController {
|
||||
|
||||
@Lazy
|
||||
private final IBusComplaintBoxService busComplaintBoxService;
|
||||
@Lazy
|
||||
private final IBusComplaintBoxMessageLoggingService busComplaintBoxMessageLoggingService;
|
||||
@Autowired
|
||||
private IBusComplaintBoxMessageLoggingService busComplaintBoxMessageLoggingService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IBusComplaintBoxDisposeLoggingService disposeLoggingService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询意见箱列表
|
||||
*/
|
||||
// @SaCheckPermission("complaintBox:complaintBox:list")
|
||||
@SaCheckPermission("complaintBox:complaintBox:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BusComplaintBoxVo> list(BusComplaintBoxBo bo, PageQuery pageQuery) {
|
||||
return busComplaintBoxService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
/**
|
||||
* 查询意见处理记录列表
|
||||
*/
|
||||
@SaCheckPermission("complaintBox:complaintBox:list")
|
||||
@GetMapping("/getDisposeLogList")
|
||||
public TableDataInfo<BusComplaintBoxDisposeLoggingVo> getDisposeLogList(BusComplaintBoxDisposeLoggingBo bo, PageQuery pageQuery) {
|
||||
return disposeLoggingService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
/**
|
||||
* web获取各个处理状态数量
|
||||
*/
|
||||
// @SaCheckPermission("complaintBox:complaintBox:list")
|
||||
@SaCheckPermission("complaintBox:complaintBox:list")
|
||||
@GetMapping("/getCount")
|
||||
public R<List<ComplaintBoxCountVo>> getCount(BusComplaintBoxBo bo) {
|
||||
return R.ok(busComplaintBoxService.getCount(bo));
|
||||
@ -75,7 +90,7 @@ public class BusComplaintBoxController extends BaseController {
|
||||
/**
|
||||
* 新增意见回复
|
||||
*/
|
||||
// @SaCheckPermission("complaintBox:complaintBox:add")
|
||||
@SaCheckPermission("complaintBox:complaintBox:add")
|
||||
@Log(title = "意见箱", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/postAReply")
|
||||
@ -87,7 +102,7 @@ public class BusComplaintBoxController extends BaseController {
|
||||
/**
|
||||
* 修改意见阅读状态
|
||||
*/
|
||||
// @SaCheckPermission("complaintBox:complaintBox:edit")
|
||||
@SaCheckPermission("complaintBox:complaintBox:edit")
|
||||
@Log(title = "意见箱", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/editCheckStatus")
|
||||
@ -98,7 +113,7 @@ public class BusComplaintBoxController extends BaseController {
|
||||
/**
|
||||
* 修改意见阅读状态
|
||||
*/
|
||||
// @SaCheckPermission("complaintBox:complaintBox:edit")
|
||||
@SaCheckPermission("complaintBox:complaintBox:edit")
|
||||
@Log(title = "意见箱", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/editStatus")
|
||||
|
||||
@ -78,7 +78,7 @@ public class BusComplaintBox extends BaseEntity {
|
||||
private String isCryptonym;
|
||||
|
||||
/**
|
||||
* 处理状态(0、待处理,5、处理中,9、已解决,10、退回,14、关闭)
|
||||
* 处理状态(0、待处理,5、处理中,9、已解决,10、退回,14、不予解决())
|
||||
*/
|
||||
private String status;
|
||||
|
||||
|
||||
@ -86,5 +86,10 @@ public class BusComplaintBoxBo extends BaseEntity {
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 退回原因
|
||||
*/
|
||||
private String cause;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package org.dromara.complaintBox.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import org.dromara.complaintBox.domain.BusComplaintBoxDisposeLogging;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -71,5 +73,10 @@ public class BusComplaintBoxDisposeLoggingVo implements Serializable {
|
||||
@ExcelProperty(value = "退回原因")
|
||||
private String cause;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -72,13 +72,11 @@ public class BusComplaintBoxDisposeLoggingServiceImpl extends ServiceImpl<BusCom
|
||||
private LambdaQueryWrapper<BusComplaintBoxDisposeLogging> buildQueryWrapper(BusComplaintBoxDisposeLoggingBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<BusComplaintBoxDisposeLogging> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(BusComplaintBoxDisposeLogging::getId);
|
||||
lqw.orderByDesc(BusComplaintBoxDisposeLogging::getCreateTime);
|
||||
lqw.eq(bo.getComplaintId() != null, BusComplaintBoxDisposeLogging::getComplaintId, bo.getComplaintId());
|
||||
lqw.eq(bo.getUserId() != null, BusComplaintBoxDisposeLogging::getUserId, bo.getUserId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getUserName()), BusComplaintBoxDisposeLogging::getUserName, bo.getUserName());
|
||||
lqw.eq(bo.getAvatar() != null, BusComplaintBoxDisposeLogging::getAvatar, bo.getAvatar());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getIsRefund()), BusComplaintBoxDisposeLogging::getIsRefund, bo.getIsRefund());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCause()), BusComplaintBoxDisposeLogging::getCause, bo.getCause());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
@ -109,7 +109,7 @@ public class BusComplaintBoxMessageLoggingServiceImpl extends ServiceImpl<BusCom
|
||||
if (busComplaintBox == null) {
|
||||
throw new ServiceException("意见信息找不到!!!");
|
||||
}
|
||||
if ("14".equals(busComplaintBox.getStatus())){
|
||||
if ("14".equals(busComplaintBox.getStatus()) || "9".equals(busComplaintBox.getStatus())) {
|
||||
throw new ServiceException("意见已关闭!!!");
|
||||
}
|
||||
SysUserVo sysUserVo = sysUserService.selectUserById(loginUser.getUserId());
|
||||
@ -145,7 +145,13 @@ public class BusComplaintBoxMessageLoggingServiceImpl extends ServiceImpl<BusCom
|
||||
if (busComplaintBox == null) {
|
||||
throw new ServiceException("意见信息找不到!!!");
|
||||
}
|
||||
if ("14".equals(busComplaintBox.getStatus())){
|
||||
if (busComplaintBox.getCurrentDisposeUserId()!= null && !loginUser.getUserId().equals(busComplaintBox.getCurrentDisposeUserId())) {
|
||||
throw new ServiceException("处理人异常");
|
||||
}
|
||||
if ("0".equals(busComplaintBox.getStatus())){
|
||||
throw new ServiceException("意见未处理,不能发布信息");
|
||||
}
|
||||
if ("14".equals(busComplaintBox.getStatus()) || "9".equals(busComplaintBox.getStatus())) {
|
||||
throw new ServiceException("意见已关闭!!!");
|
||||
}
|
||||
SysUserVo sysUserVo = sysUserService.selectUserById(loginUser.getUserId());
|
||||
@ -159,11 +165,11 @@ public class BusComplaintBoxMessageLoggingServiceImpl extends ServiceImpl<BusCom
|
||||
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if ("0".equals(busComplaintBox.getStatus())){
|
||||
busComplaintBox.setStatus("5");
|
||||
busComplaintBox.setCurrentDisposeUserId(sysUserVo.getUserId());
|
||||
busComplaintBoxMapper.updateById(busComplaintBox);
|
||||
}
|
||||
// if ("0".equals(busComplaintBox.getStatus())){
|
||||
// busComplaintBox.setStatus("5");
|
||||
// busComplaintBox.setCurrentDisposeUserId(sysUserVo.getUserId());
|
||||
// busComplaintBoxMapper.updateById(busComplaintBox);
|
||||
// }
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
|
||||
@ -3,6 +3,8 @@ package org.dromara.complaintBox.service.impl;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
@ -12,12 +14,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.complaintBox.app.domain.vo.AppDetailsOfTheOpinionVo;
|
||||
import org.dromara.complaintBox.domain.BusComplaintBoxDisposeLogging;
|
||||
import org.dromara.complaintBox.domain.BusComplaintBoxMessageLogging;
|
||||
import org.dromara.complaintBox.domain.vo.BusComplaintBoxMessageLoggingVo;
|
||||
import org.dromara.complaintBox.domain.vo.ComplaintBoxCountVo;
|
||||
import org.dromara.complaintBox.domain.vo.DetailsOfTheOpinionVo;
|
||||
import org.dromara.complaintBox.mapper.BusComplaintBoxMessageLoggingMapper;
|
||||
import org.dromara.complaintBox.service.IBusComplaintBoxDisposeLoggingService;
|
||||
import org.dromara.complaintBox.service.IBusComplaintBoxMessageLoggingService;
|
||||
import org.dromara.system.domain.vo.SysDeptVo;
|
||||
import org.dromara.system.domain.vo.SysOssVo;
|
||||
@ -32,6 +37,7 @@ import org.dromara.complaintBox.domain.vo.BusComplaintBoxVo;
|
||||
import org.dromara.complaintBox.domain.BusComplaintBox;
|
||||
import org.dromara.complaintBox.mapper.BusComplaintBoxMapper;
|
||||
import org.dromara.complaintBox.service.IBusComplaintBoxService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -50,11 +56,17 @@ public class BusComplaintBoxServiceImpl extends ServiceImpl<BusComplaintBoxMappe
|
||||
// @Lazy
|
||||
private final BusComplaintBoxMessageLoggingMapper messageLoggingMapper;
|
||||
@Lazy
|
||||
private final ISysUserService sysUserService;
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
@Lazy
|
||||
private final ISysDeptService sysDeptService;
|
||||
@Resource
|
||||
private ISysDeptService sysDeptService;
|
||||
@Lazy
|
||||
private final ISysOssService sysOssService;
|
||||
@Resource
|
||||
private ISysOssService sysOssService;
|
||||
@Lazy
|
||||
@Resource
|
||||
private IBusComplaintBoxDisposeLoggingService disposeLoggingService;
|
||||
|
||||
/**
|
||||
* 查询意见箱
|
||||
@ -319,6 +331,7 @@ public class BusComplaintBoxServiceImpl extends ServiceImpl<BusComplaintBoxMappe
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int editStatus(BusComplaintBoxBo bo) {
|
||||
BusComplaintBoxVo busComplaintBoxVo = baseMapper.selectVoById(bo.getId());
|
||||
if (busComplaintBoxVo == null){
|
||||
@ -327,7 +340,37 @@ public class BusComplaintBoxServiceImpl extends ServiceImpl<BusComplaintBoxMappe
|
||||
if ("14".equals(busComplaintBoxVo.getStatus())){
|
||||
throw new ServiceException("该意见已经关闭,不允许再修改状态");
|
||||
}
|
||||
return baseMapper.update(new LambdaUpdateWrapper<BusComplaintBox>().set(BusComplaintBox::getStatus,bo.getStatus()).eq(BusComplaintBox::getId, bo.getId()));
|
||||
LambdaUpdateWrapper<BusComplaintBox> lqw = new LambdaUpdateWrapper<BusComplaintBox>();
|
||||
lqw.set(BusComplaintBox::getStatus, bo.getStatus());
|
||||
lqw.eq(BusComplaintBox::getId, bo.getId());
|
||||
if ("5".equals(busComplaintBoxVo.getStatus())){
|
||||
BusComplaintBoxDisposeLogging logging = new BusComplaintBoxDisposeLogging();
|
||||
logging.setComplaintId(bo.getId());
|
||||
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||
SysUserVo sysUserVo = sysUserService.selectUserById(loginUser.getUserId());
|
||||
if (sysUserVo == null){
|
||||
throw new ServiceException("找不到当前登录用户信息!");
|
||||
}
|
||||
logging.setUserId(loginUser.getUserId());
|
||||
logging.setUserName(sysUserVo.getNickName());
|
||||
logging.setAvatar(sysUserVo.getAvatar());
|
||||
disposeLoggingService.save(logging);
|
||||
}
|
||||
if ("0".equals(bo.getStatus())){
|
||||
lqw.set(BusComplaintBox::getCurrentDisposeUserId, null);
|
||||
BusComplaintBoxDisposeLogging logging = disposeLoggingService.getBaseMapper()
|
||||
.selectOne(new LambdaQueryWrapper<BusComplaintBoxDisposeLogging>()
|
||||
.eq(BusComplaintBoxDisposeLogging::getComplaintId, bo.getId())
|
||||
.eq(BusComplaintBoxDisposeLogging::getUserId, busComplaintBoxVo.getCurrentDisposeUserId())
|
||||
.eq(BusComplaintBoxDisposeLogging::getIsRefund, "0"));
|
||||
if (logging == null){
|
||||
throw new ServiceException("找不到处理人记录");
|
||||
}
|
||||
logging.setIsRefund("1");
|
||||
logging.setCause(bo.getCause());
|
||||
disposeLoggingService.updateById(logging);
|
||||
}
|
||||
return baseMapper.update(lqw);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -412,6 +412,7 @@ public class SubConstructionUserController extends BaseController {
|
||||
vo.setUploadFile("部分上传");
|
||||
}
|
||||
dataList.add(vo);
|
||||
order++;
|
||||
}
|
||||
// 写入当前Sheet的数据
|
||||
excelWriter.write(dataList, writeSheet);
|
||||
@ -456,7 +457,9 @@ public class SubConstructionUserController extends BaseController {
|
||||
} else {
|
||||
vo.setUploadFile("部分上传");
|
||||
}
|
||||
vo.setTeamName(null);
|
||||
dataList.add(vo);
|
||||
order++;
|
||||
}
|
||||
// 写入当前Sheet的数据
|
||||
excelWriter.write(dataList, writeSheet);
|
||||
|
||||
@ -271,7 +271,7 @@ public class SubConstructionUserFileServiceImpl extends ServiceImpl<SubConstruct
|
||||
}
|
||||
}
|
||||
if (CollUtil.isEmpty(constructionUserFileList)) {
|
||||
return true;
|
||||
throw new ServiceException("未找到施工人员文件");
|
||||
}
|
||||
// 9. 判断是否已经存在
|
||||
List<Long> userIdList = constructionUserFileList.stream().map(SubConstructionUserFile::getUserId).toList();
|
||||
|
||||
@ -230,7 +230,7 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
||||
try {
|
||||
decrypt = idCardEncryptorUtil.decrypt(decrypt);
|
||||
} catch (Exception e) {
|
||||
log.warn("身份证解密失败");
|
||||
log.warn("身份证解密失败:{}", vo.getUserName(), e);
|
||||
}
|
||||
subConstructionUserVo.setSfzNumber(decrypt);
|
||||
return subConstructionUserVo;
|
||||
|
||||
@ -26,6 +26,7 @@ import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogCreateReq;
|
||||
import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogQueryReq;
|
||||
import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogUpdateReq;
|
||||
import org.dromara.design.domain.vo.CopyUserVo;
|
||||
import org.dromara.design.domain.vo.DelayContVo;
|
||||
import org.dromara.design.domain.vo.DesUserVo;
|
||||
import org.dromara.design.domain.vo.volumecatalog.DesVolumeCatalogVo;
|
||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileVo;
|
||||
@ -45,10 +46,7 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -131,6 +129,16 @@ public class DesVolumeCatalogController extends BaseController {
|
||||
return toAjax(desVolumeCatalogService.viewerFile(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 计划过期统计
|
||||
*/
|
||||
@GetMapping("/delayCont/{projectId}")
|
||||
public R<DelayContVo> delayCont(@PathVariable Long projectId) {
|
||||
return R.ok(desVolumeCatalogService.delayCont(projectId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 新增卷册目录
|
||||
*/
|
||||
@ -167,6 +175,9 @@ public class DesVolumeCatalogController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 收资清单模板导出
|
||||
*/
|
||||
|
||||
@ -46,4 +46,9 @@ public class DesVolumeCatalogQueryReq implements Serializable {
|
||||
*/
|
||||
private String designSubitem;
|
||||
|
||||
/**
|
||||
* 0-不延期,1-延期
|
||||
*/
|
||||
private String delay;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
package org.dromara.design.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DelayContVo {
|
||||
|
||||
/**
|
||||
* 总数
|
||||
*/
|
||||
private Integer total;
|
||||
|
||||
/**
|
||||
* 延迟数
|
||||
*/
|
||||
private Integer delay;
|
||||
|
||||
/**
|
||||
* 今日数
|
||||
*/
|
||||
private Integer today;
|
||||
}
|
||||
@ -11,7 +11,9 @@ import org.dromara.design.domain.DesVolumeFile;
|
||||
import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogCreateReq;
|
||||
import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogQueryReq;
|
||||
import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogUpdateReq;
|
||||
import org.dromara.design.domain.vo.DelayContVo;
|
||||
import org.dromara.design.domain.vo.volumecatalog.DesVolumeCatalogVo;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -130,4 +132,9 @@ public interface IDesVolumeCatalogService extends IService<DesVolumeCatalog> {
|
||||
* @return 设计子项列表
|
||||
*/
|
||||
List<String> listDesignSubitem(Long projectId);
|
||||
|
||||
/**
|
||||
* 统计
|
||||
*/
|
||||
DelayContVo delayCont(Long projectId);
|
||||
}
|
||||
|
||||
@ -100,4 +100,7 @@ public interface IDesVolumeFileService extends IService<DesVolumeFile> {
|
||||
TableDataInfo<DesVolumeFileAppVo> queryAppPageList(DesVolumeFileAppPageDto dto, PageQuery pageQuery);
|
||||
|
||||
AuditFileVo auditFile(AuditFileDto dto);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -28,6 +28,7 @@ import org.dromara.design.domain.bo.DesUserBo;
|
||||
import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogCreateReq;
|
||||
import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogQueryReq;
|
||||
import org.dromara.design.domain.dto.volumecatalog.DesVolumeCatalogUpdateReq;
|
||||
import org.dromara.design.domain.vo.DelayContVo;
|
||||
import org.dromara.design.domain.vo.volumecatalog.DesVolumeCatalogVo;
|
||||
import org.dromara.design.mapper.DesVolumeCatalogMapper;
|
||||
import org.dromara.design.service.*;
|
||||
@ -43,6 +44,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@ -236,6 +239,17 @@ public class DesVolumeCatalogServiceImpl extends ServiceImpl<DesVolumeCatalogMap
|
||||
return list.stream().map(DesVolumeCatalog::getDesignSubitem).toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DelayContVo delayCont(Long projectId) {
|
||||
List<DesVolumeCatalog> list = this.lambdaQuery()
|
||||
.eq(DesVolumeCatalog::getProjectId, projectId).list();
|
||||
DelayContVo delayContVo = new DelayContVo();
|
||||
delayContVo.setTotal(list.size());
|
||||
delayContVo.setDelay((int)list.stream().filter(item -> item.getPlannedCompletion().isBefore(LocalDate.now()) && item.getDesignState().equals("2")).count());
|
||||
delayContVo.setToday((int)list.stream().filter(item -> item.getPlannedCompletion().isEqual(LocalDate.now())).count());
|
||||
return delayContVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改卷册目录
|
||||
*
|
||||
@ -353,6 +367,7 @@ public class DesVolumeCatalogServiceImpl extends ServiceImpl<DesVolumeCatalogMap
|
||||
String auditStatus = req.getAuditStatus();
|
||||
String isUpload = req.getIsUpload();
|
||||
String designSubitem = req.getDesignSubitem();
|
||||
String delay = req.getDelay();
|
||||
// lqw.orderByDesc(DesVolumeCatalog::getCreateTime);
|
||||
lqw.orderByAsc(DesVolumeCatalog::getSerialNumber);
|
||||
lqw.like(StringUtils.isNotBlank(documentName), DesVolumeCatalog::getDocumentName, documentName);
|
||||
@ -363,6 +378,16 @@ public class DesVolumeCatalogServiceImpl extends ServiceImpl<DesVolumeCatalogMap
|
||||
lqw.exists("1".equals(isUpload), "SELECT 1 FROM des_volume_file WHERE volume_catalog_id = des_volume_catalog.design");
|
||||
lqw.notExists("0".equals(isUpload), "SELECT 1 FROM des_volume_file WHERE volume_catalog_id = des_volume_catalog.design");
|
||||
|
||||
if("1".equals(delay)){
|
||||
lqw.lt(DesVolumeCatalog::getPlannedCompletion, LocalDateTime.now());
|
||||
lqw.eq(DesVolumeCatalog::getDesignState, "2");
|
||||
}
|
||||
if("0".equals(delay)){
|
||||
lqw.and(wrapper -> wrapper.gt(DesVolumeCatalog::getPlannedCompletion, LocalDateTime.now())
|
||||
.or()
|
||||
.eq(DesVolumeCatalog::getDesignState, "1")
|
||||
);
|
||||
}
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ import org.dromara.device.domain.bo.DeviceAccessRecordBo;
|
||||
import org.dromara.device.domain.vo.DeviceAccessRecordVo;
|
||||
import org.dromara.device.domain.vo.DeviceInfoCountVo;
|
||||
import org.dromara.device.service.IDeviceAccessRecordService;
|
||||
import org.redisson.api.RList;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
@ -137,4 +138,13 @@ public class DeviceInfoController extends BaseController {
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(deviceInfoService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备信息列表
|
||||
*/
|
||||
@GetMapping("/deviceList")
|
||||
public R<List<DeviceInfoVo>> deviceList(DeviceInfoBo bo) {
|
||||
List<DeviceInfoVo> list = deviceInfoService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,5 +95,10 @@ public class DeviceAccessRecordVo implements Serializable {
|
||||
@ExcelProperty(value = "详细说明", converter = ExcelDictConvert.class)
|
||||
private String details;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@ import org.dromara.device.domain.DeviceAccessRecord;
|
||||
import org.dromara.device.mapper.DeviceAccessRecordMapper;
|
||||
import org.dromara.device.service.IDeviceAccessRecordService;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
@ -77,6 +78,16 @@ public class DeviceAccessRecordServiceImpl extends ServiceImpl<DeviceAccessRecor
|
||||
lqw.eq(bo.getDeviceId() != null, DeviceAccessRecord::getDeviceId, bo.getDeviceId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getDeviceName()), DeviceAccessRecord::getDeviceName, bo.getDeviceName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), DeviceAccessRecord::getStatus, bo.getStatus());
|
||||
|
||||
if(bo.getOperateTime() != null){
|
||||
LocalDateTime operateTime = bo.getOperateTime();
|
||||
//一天的开始
|
||||
LocalDateTime startTime = operateTime.withHour(0).withMinute(0).withSecond(0);
|
||||
//一天的结束
|
||||
LocalDateTime endTime = operateTime.withHour(23).withMinute(59).withSecond(59);
|
||||
lqw.between(DeviceAccessRecord::getOperateTime,startTime,endTime);
|
||||
}
|
||||
|
||||
lqw.eq(bo.getOperateTime() != null, DeviceAccessRecord::getOperateTime, bo.getOperateTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getLocation()), DeviceAccessRecord::getLocation, bo.getLocation());
|
||||
lqw.eq(bo.getOperatorId() != null, DeviceAccessRecord::getOperatorId, bo.getOperatorId());
|
||||
|
||||
@ -55,7 +55,10 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
|
||||
*/
|
||||
@Override
|
||||
public DeviceInfoVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
DeviceInfoVo deviceInfoVo = baseMapper.selectVoById(id);
|
||||
DeviceType byId = deviceTypeService.getById(deviceInfoVo.getTypeId());
|
||||
deviceInfoVo.setTypeName(byId.getTypeName());
|
||||
return deviceInfoVo;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -165,6 +165,7 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceT
|
||||
List<DeviceType> list = baseMapper.selectList(queryWrapper);
|
||||
checkIds.addAll(list.stream().map(DeviceType::getId).toList());
|
||||
}
|
||||
checkIds.addAll(ids);
|
||||
List<DeviceInfo> list = deviceInfoService.lambdaQuery().in(DeviceInfo::getTypeId, checkIds).list();
|
||||
if(CollectionUtil.isNotEmpty(list)){
|
||||
throw new ServiceException("当前类型或子级类型存在设备");
|
||||
|
||||
@ -1,17 +1,15 @@
|
||||
package org.dromara.gps.domain.bo;
|
||||
|
||||
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* GPS设备定位信息业务对象 gps_equipment_son
|
||||
@ -137,4 +135,14 @@ public class GpsEquipmentSonBo extends BaseEntity {
|
||||
*/
|
||||
private Long tripId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 头像地址
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
}
|
||||
|
||||
@ -11,7 +11,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.domain.dto.OssDTO;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.service.OssService;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
@ -52,9 +54,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@ -83,6 +83,8 @@ public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, Gps
|
||||
private IVehVehicleInfoService iVehVehicleInfoService;
|
||||
@Autowired
|
||||
private IVehVehicleTripService iVehVehicleTripService;
|
||||
@Autowired
|
||||
private OssService ossService;
|
||||
|
||||
@Resource
|
||||
private IGpsSafetyUserRecordService safetyUserRecordService;
|
||||
@ -605,6 +607,42 @@ public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, Gps
|
||||
WebSocketUtils.publishAll(pushContent);
|
||||
}
|
||||
}
|
||||
|
||||
//接收一次则将存入Redis中数据累加1
|
||||
// 获取当天结束时间
|
||||
LocalDate today = LocalDate.now();
|
||||
LocalDateTime endOfDay = LocalDateTime.of(today, LocalTime.MAX); // 23:59:59.999999999
|
||||
long expireAt = endOfDay.atZone(ZoneId.systemDefault()).toEpochSecond();
|
||||
// 计算剩余秒数
|
||||
long now = System.currentTimeMillis() / 1000;
|
||||
long expireSeconds = expireAt - now;
|
||||
//检查是否存在
|
||||
boolean rydw = RedisUtils.isExistsObject("rydw_cs");
|
||||
if (!rydw) {
|
||||
RedisUtils.setCacheObject("rydw_cs",0,Duration.ofSeconds(expireSeconds));
|
||||
}else {
|
||||
Integer cacheObject = RedisUtils.getCacheObject("rydw_cs");
|
||||
cacheObject = cacheObject + 1;
|
||||
RedisUtils.setCacheObject("rydw_cs",cacheObject,true);
|
||||
}
|
||||
|
||||
//将打卡用户存入Redis中 过期时间为当天23:59:59
|
||||
SysUserVo sysUserVo = userService.queryById(gpsEquipment.getUserId());
|
||||
if (sysUserVo != null){
|
||||
if (sysUserVo.getNickName() != null) {
|
||||
gpsEquipmentSonBo.setUserName(sysUserVo.getNickName());
|
||||
}
|
||||
if (sysUserVo.getAvatar() != null){
|
||||
List<OssDTO> ossDTOS = ossService.selectByIds(sysUserVo.getAvatar().toString());
|
||||
if (ossDTOS != null && !ossDTOS.isEmpty()) {
|
||||
gpsEquipmentSonBo.setAvatar(ossDTOS.getFirst().getUrl());
|
||||
}
|
||||
}
|
||||
}
|
||||
gpsEquipmentSonBo.setCreateTime(new Date());
|
||||
setPersonToRedis(gpsEquipmentSonBo,expireSeconds);
|
||||
|
||||
|
||||
// 保存到Redis并设置过期监听
|
||||
updateDeviceAliveStatus(gpsEquipment.getClientId());
|
||||
}
|
||||
@ -645,5 +683,18 @@ public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, Gps
|
||||
return gpsEquipmentSonService.getUserOrClientDate(bo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 打卡人员存入redis
|
||||
*/
|
||||
private void setPersonToRedis(GpsEquipmentSonBo entity,long time) {
|
||||
String key = "rydw_userId_:" + entity.getUserId();
|
||||
|
||||
// 先删除可能存在的旧数据
|
||||
if (RedisUtils.isExistsObject(key)) {
|
||||
RedisUtils.deleteObject(key);
|
||||
}
|
||||
|
||||
RedisUtils.setCacheObject(key, entity, Duration.ofSeconds(time));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -61,4 +61,14 @@ public interface Ys7Constant {
|
||||
*/
|
||||
String setDeviceVideoUrlByPost = "https://open.ys7.com/api/lapp/device/fullday/record/switch/set";
|
||||
|
||||
/**
|
||||
* 摄像头查询设备本地录像 Get
|
||||
*/
|
||||
String getDeviceLocalVideoUrlByGet = "https://open.ys7.com/api/v3/device/local/video/unify/query";
|
||||
|
||||
/**
|
||||
* 获取播放地址 POST
|
||||
*/
|
||||
String getDeviceLappVideoUrlByPost = "https://open.ys7.com/api/lapp/v2/live/address/get";
|
||||
|
||||
}
|
||||
|
||||
@ -4,17 +4,20 @@ import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.constant.HttpStatus;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.manager.ys7manager.vo.Ys7NoDataResponseVo;
|
||||
import org.dromara.manager.ys7manager.vo.Ys7PageResponseVo;
|
||||
import org.dromara.manager.ys7manager.vo.Ys7QueryDeviceResponseVo;
|
||||
import org.dromara.manager.ys7manager.vo.Ys7ResponseVo;
|
||||
import org.dromara.common.core.utils.TimestampUtils;
|
||||
import org.dromara.manager.ys7manager.dto.DeviceLocalVideoRequstDto;
|
||||
import org.dromara.manager.ys7manager.dto.DevicePlayBackUrlRequstDto;
|
||||
import org.dromara.manager.ys7manager.vo.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
@ -290,4 +293,159 @@ public class Ys7RequestUtils {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取播放地址
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public static String getDevicePlayBackUrl(DevicePlayBackUrlRequstDto dto) {
|
||||
if (StringUtils.isAnyBlank(dto.getAccessToken(), dto.getDeviceSerial())) {
|
||||
throw new ServiceException("获取回放录像参数为空", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("accessToken", dto.getAccessToken());
|
||||
paramMap.put("deviceSerial", dto.getDeviceSerial());
|
||||
if (dto.getChannelNo() != null) {
|
||||
paramMap.put("channelNo", dto.getChannelNo());
|
||||
}
|
||||
if (dto.getQuality() != null) {
|
||||
paramMap.put("quality", dto.getQuality());
|
||||
}
|
||||
if (dto.getProtocol() != null) {
|
||||
paramMap.put("protocol", dto.getProtocol());
|
||||
}
|
||||
if (dto.getStartTime() != null) {
|
||||
paramMap.put("startTime", dto.getStartTime());
|
||||
}
|
||||
if (dto.getEndTime() != null) {
|
||||
paramMap.put("stopTime", dto.getEndTime());
|
||||
}
|
||||
if (dto.getType() != null) {
|
||||
paramMap.put("type", dto.getType());
|
||||
}
|
||||
if (dto.getExpireTime() != null) {
|
||||
paramMap.put("expireTime", dto.getExpireTime());
|
||||
}
|
||||
if (dto.getRecType() != null) {
|
||||
paramMap.put("recType", dto.getRecType());
|
||||
}
|
||||
if (dto.getCode() != null) {
|
||||
paramMap.put("code", dto.getCode());
|
||||
}
|
||||
if (dto.getSupportH265() != null) {
|
||||
paramMap.put("supportH265", dto.getSupportH265());
|
||||
}
|
||||
if (dto.getPlaybackSpeed() != null) {
|
||||
paramMap.put("playbackSpeed", dto.getPlaybackSpeed());
|
||||
}
|
||||
if (dto.getGbchannel() != null) {
|
||||
paramMap.put("gbchannel", dto.getGbchannel());
|
||||
}
|
||||
String errorMsg = "获取回放录像请求失败";
|
||||
try (HttpResponse response = HttpRequest.post(Ys7Constant.getDeviceLappVideoUrlByPost)
|
||||
.form(paramMap)
|
||||
.execute()) {
|
||||
if (!response.isOk()) {
|
||||
log.error("{}:{}", errorMsg, response.getStatus());
|
||||
throw new ServiceException(errorMsg + response.getStatus());
|
||||
}
|
||||
String body = response.body();
|
||||
log.info("本地录像body{}",body);
|
||||
Ys7ResponseVo responseVo = JSONUtil.toBean(body, Ys7ResponseVo.class);
|
||||
if (!responseVo.getCode().equals("200")) {
|
||||
log.error("{},状态码:{},{}", errorMsg, responseVo.getCode(), responseVo.getMsg());
|
||||
throw new ServiceException(errorMsg + responseVo.getMsg());
|
||||
}
|
||||
String data = responseVo.getData();
|
||||
String picUrl = JSONUtil.parseObj(data).getStr("url");
|
||||
log.info("获取回放录像请求成功,设备[{}]回放成功,通道:{},url:{}", dto.getDeviceSerial(), dto.getChannelNo(), picUrl);
|
||||
return picUrl;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设备某天的本地录像
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public static List<DeviceLocalVideoRecordsVo> getDeviceLocalVideo(DeviceLocalVideoRequstDto dto) {
|
||||
if (StringUtils.isAnyBlank(dto.getAccessToken(), dto.getDeviceSerial(),dto.getStartTime(), dto.getEndTime())) {
|
||||
throw new ServiceException("查询设备本地录像参数为空", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
dto.setStartTime(Objects.requireNonNull(TimestampUtils.parseDateToTimestamp(dto.getStartTime())).toString());
|
||||
dto.setEndTime(Objects.requireNonNull(TimestampUtils.parseDateToTimestamp(dto.getEndTime())).toString());
|
||||
List<DeviceLocalVideoRecordsVo> vos = new ArrayList<>();
|
||||
getRexords(dto, vos);
|
||||
return vos;
|
||||
}
|
||||
|
||||
private static void getRexords(DeviceLocalVideoRequstDto dto, List<DeviceLocalVideoRecordsVo> vos) {
|
||||
String errorMsg = "查询设备本地录像请求失败";
|
||||
String body = getDevicceLocalVideoBody(dto);
|
||||
log.info("本地录像body{}",body);
|
||||
JSONObject jsonObject = JSONUtil.parseObj(body);
|
||||
DeviceLocalVideoMetaVo meta = JSONUtil.toBean(jsonObject.getJSONObject("meta"), DeviceLocalVideoMetaVo.class);
|
||||
if (!meta.getCode().equals("200")) {
|
||||
log.error("{},状态码:{},{}", errorMsg, meta.getCode(), meta.getMessage());
|
||||
throw new ServiceException(errorMsg + meta.getMessage());
|
||||
}
|
||||
DeviceLocalVideoDataVo data = JSONUtil.toBean(jsonObject.getJSONObject("data"), DeviceLocalVideoDataVo.class);
|
||||
if (data != null) {
|
||||
List<DeviceLocalVideoRecordsVo> list = JSONUtil.toList(data.getRecords(), DeviceLocalVideoRecordsVo.class);
|
||||
if (list != null && !list.isEmpty()) {
|
||||
list.forEach(vo -> {
|
||||
vo.setStartTime(TimestampUtils.extractTime(vo.getStartTime()));
|
||||
vo.setEndTime(TimestampUtils.extractTime(vo.getEndTime()));
|
||||
});
|
||||
vos.addAll(list);
|
||||
}
|
||||
if (data.getHasMore()){
|
||||
dto.setStartTime(data.getNextFileTime());
|
||||
if (Long.parseLong(dto.getStartTime()) > Long.parseLong(dto.getEndTime())){
|
||||
return;
|
||||
}
|
||||
getRexords(dto, vos);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static String getDevicceLocalVideoBody(DeviceLocalVideoRequstDto dto) {
|
||||
// 2. 构建Header参数(接口文档的Header部分)
|
||||
HttpRequest request = HttpRequest.get(Ys7Constant.getDeviceLocalVideoUrlByGet)
|
||||
.header("accessToken", dto.getAccessToken()) // Header参数:accessToken
|
||||
.header("deviceSerial", dto.getDeviceSerial());// Header参数:deviceSerial
|
||||
// 可选Header:localIndex(对应dto的channelNo)
|
||||
if (dto.getChannelNo() != null) {
|
||||
request.header("channelNo", dto.getChannelNo().toString());
|
||||
}
|
||||
|
||||
// 3. 构建Query参数(接口文档的query部分)
|
||||
request.form("startTime", dto.getStartTime()) // Query必传:startTime
|
||||
.form("endTime", dto.getEndTime()); // Query必传:endTime
|
||||
// 可选Query参数
|
||||
if (dto.getRecordType() != null) {
|
||||
request.form("recordType", dto.getRecordType().toString());
|
||||
}
|
||||
if (dto.getIsQueryByNvr() != null) {
|
||||
request.form("isQueryByNvr", dto.getIsQueryByNvr().toString());
|
||||
}
|
||||
if (dto.getLocation() != null) {
|
||||
request.form("location", dto.getLocation().toString());
|
||||
}
|
||||
if (dto.getPageSize() != null) {
|
||||
request.form("pageSize", dto.getPageSize().toString());
|
||||
}
|
||||
|
||||
String errorMsg = "查询设备本地录像请求失败";
|
||||
try (HttpResponse response = request.execute()) {
|
||||
if (!response.isOk()) {
|
||||
log.error("{}:{}", errorMsg, response.getStatus());
|
||||
throw new ServiceException(errorMsg + response.getStatus());
|
||||
}
|
||||
return response.body();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
package org.dromara.manager.ys7manager.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class DeviceLocalVideoRequstDto implements Serializable {
|
||||
private String accessToken; //toke
|
||||
private String deviceSerial; //设备序列号
|
||||
private Integer channelNo; // 通道号,默认1
|
||||
private Integer recordType; // 1:定时录像 2:事件录像 3:智能-车 4:智能-人形 5:自动浓缩录像,不填默认查询所有类型
|
||||
private String startTime; // 回放开始时间(格式:yyyy-MM-dd HH:mm:ss)
|
||||
private String endTime; // 回放结束时间(格式:yyyy-MM-dd HH:mm:ss)
|
||||
private Integer isQueryByNvr; // 是否反查NVR录像:0-不反查(默认),1-反查NVR
|
||||
private Integer location; // 录像检索位置:1-本地录像检索(默认),2-CVR中心录像检索
|
||||
private Integer pageSize; // 分页的页面大小,默认50,最大200
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package org.dromara.manager.ys7manager.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class DevicePlayBackUrlRequstDto implements Serializable {
|
||||
private String accessToken; //toke
|
||||
private String deviceSerial; //设备序列号
|
||||
private Integer channelNo; // 通道号,默认1
|
||||
private Integer protocol; // 流协议:1-ezopen、2-hls、3-rtmp、4-flv,默认1
|
||||
private String code; // 视频加密密码
|
||||
private Integer expireTime; // 过期时长(秒),30秒-720天
|
||||
private String type; // 地址类型:1-预览,2-本地录像回放,3-云存储录像回放,默认1
|
||||
private Integer quality; // 清晰度:1-高清,2-流畅
|
||||
private String startTime; // 回放开始时间(格式:yyyy-MM-dd HH:mm:ss)
|
||||
private String endTime; // 回放结束时间(格式:yyyy-MM-dd HH:mm:ss)
|
||||
private Integer supportH265; // 是否需要H265编码:1-是,0-否
|
||||
private Integer recType; // 回放源,0-系统自动选择,1-云存储,2-本地录像。非必选,默认为0
|
||||
private String playbackSpeed; // 回放倍速:-1、0.5、1、2、4、8、16(仅支持flv协议+回放类型)
|
||||
private String gbchannel; // 国标设备通道编号
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package org.dromara.manager.ys7manager.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/6/12 17:14
|
||||
*/
|
||||
@Data
|
||||
public class DeviceLocalVideoDataVo {
|
||||
|
||||
/**
|
||||
* 响应内容
|
||||
*/
|
||||
private String records;
|
||||
|
||||
//该录像文件是否来自关联的nvr
|
||||
private String fromNvr;
|
||||
|
||||
// fromNvr为true,则返回关联NVR设备序列号,否则返回入参填的设备序列号。
|
||||
private String deviceSerial;
|
||||
// fromNvr为true,则返回关联NVR设备通道号,否则返回入参填的设备通道号
|
||||
private String localIndex;
|
||||
//是否存在更多录像文件
|
||||
private Boolean hasMore;
|
||||
// hasMore为true时,该参数值为下一个录像文件的开始时间。如需分页查询,该参数值可作为下一页录像文件查询的开始时间。
|
||||
private String nextFileTime;
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package org.dromara.manager.ys7manager.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/6/12 17:14
|
||||
*/
|
||||
@Data
|
||||
public class DeviceLocalVideoMetaVo {
|
||||
|
||||
/**
|
||||
* 响应码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 响应信息
|
||||
*/
|
||||
private String message;
|
||||
|
||||
/**
|
||||
* 响应信息
|
||||
*/
|
||||
private String moreInfo;
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package org.dromara.manager.ys7manager.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025/6/12 17:14
|
||||
*/
|
||||
@Data
|
||||
public class DeviceLocalVideoRecordsVo {
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private String endTime;
|
||||
|
||||
//录像类型
|
||||
private String type;
|
||||
//录像文件大小,单位:字节
|
||||
private String size;
|
||||
|
||||
}
|
||||
@ -0,0 +1,149 @@
|
||||
package org.dromara.mechanical.jxaqgl.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.device.domain.bo.DeviceInfoBo;
|
||||
import org.dromara.device.domain.vo.DeviceInfoVo;
|
||||
import org.dromara.device.service.IDeviceInfoService;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAnqjcgHeadVo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglVo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglBo;
|
||||
import org.dromara.mechanical.jxaqgl.service.IJxAqjcglService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/jxaqgl/aqjcgl")
|
||||
public class JxAqjcglController extends BaseController {
|
||||
|
||||
private final IJxAqjcglService jxAqjcglService;
|
||||
|
||||
|
||||
private final IDeviceInfoService deviceInfoService;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询设备信息列表
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:list")
|
||||
@GetMapping("/getlist")
|
||||
public TableDataInfo<DeviceInfoVo> list(DeviceInfoBo bo, PageQuery pageQuery) {
|
||||
return deviceInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询近30天机械安全检查记录头部数据
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:list")
|
||||
@GetMapping("/listHead")
|
||||
public R<JxAnqjcgHeadVo> listHead(JxAqjcglBo bo, PageQuery pageQuery) {
|
||||
return R.ok(jxAqjcglService.listHead(bo, pageQuery));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询近6月机械安全检查结果趋势
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:list")
|
||||
@GetMapping("/listHeadJgqs")
|
||||
public List<JxAnqjcgHeadVo> listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery) {
|
||||
return jxAqjcglService.listHeadJgqs(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械安全检查记录列表
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<JxAqjcglVo> list(JxAqjcglBo bo, PageQuery pageQuery) {
|
||||
return jxAqjcglService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出机械安全检查记录列表
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:export")
|
||||
@Log(title = "机械安全检查记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(JxAqjcglBo bo, HttpServletResponse response) {
|
||||
List<JxAqjcglVo> list = jxAqjcglService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "机械安全检查记录", JxAqjcglVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取机械安全检查记录详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<JxAqjcglVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(jxAqjcglService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增机械安全检查记录
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:add")
|
||||
@Log(title = "机械安全检查记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody JxAqjcglBo bo) {
|
||||
return toAjax(jxAqjcglService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机械安全检查记录
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:edit")
|
||||
@Log(title = "机械安全检查记录", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody JxAqjcglBo bo) {
|
||||
return toAjax(jxAqjcglService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除机械安全检查记录
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("jxaqgl:aqjcgl:remove")
|
||||
@Log(title = "机械安全检查记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(jxAqjcglService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,141 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录对象 jx_aqjcgl
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("jx_aqjcgl")
|
||||
public class JxAqjcgl extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 检查单编号
|
||||
*/
|
||||
private String inspectionOrderNo;
|
||||
|
||||
/**
|
||||
* 检查日期
|
||||
*/
|
||||
private LocalDate inspectionDate;
|
||||
|
||||
/**
|
||||
* 检查类型
|
||||
*/
|
||||
private String inspectionType;
|
||||
|
||||
/**
|
||||
* 检查人
|
||||
*/
|
||||
private Long inspector;
|
||||
|
||||
/**
|
||||
* 参与人(多个用逗号分隔)
|
||||
*/
|
||||
private String participants;
|
||||
|
||||
/**
|
||||
* 所属项目(如田东)
|
||||
*/
|
||||
private Long projectStation;
|
||||
|
||||
/**
|
||||
* 所属项目名称(如田东)
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 机械设备id
|
||||
*/
|
||||
private String equipmentId;
|
||||
|
||||
/**
|
||||
* 机械设备名称
|
||||
*/
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 不通过原因
|
||||
*/
|
||||
private String notPassCause;
|
||||
/**
|
||||
* 机械设备编号
|
||||
*/
|
||||
private String equipmentCode;
|
||||
|
||||
/**
|
||||
* 设备类型(下拉选择项)
|
||||
*/
|
||||
private String equipmentType;
|
||||
|
||||
/**
|
||||
* 检查结果
|
||||
*/
|
||||
private String inspectionResult;
|
||||
|
||||
/**
|
||||
* 风险等级
|
||||
*/
|
||||
private String riskGrade;
|
||||
|
||||
|
||||
/**
|
||||
* 整改状态
|
||||
*/
|
||||
private String abarbeitungState;
|
||||
|
||||
/**
|
||||
* 整改责任人
|
||||
*/
|
||||
private Long abarbeitung;
|
||||
|
||||
/**
|
||||
* 选择分包还是班组
|
||||
*/
|
||||
private String rectificationUnit;
|
||||
|
||||
/**
|
||||
* 整改单位
|
||||
*/
|
||||
private Long rectificationId;
|
||||
|
||||
/**
|
||||
* 整改日期
|
||||
*/
|
||||
private LocalDate abarbeitungDate;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——检查内容对象 jx_aqjcgl_jcnr
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("jx_aqjcgl_jcnr")
|
||||
public class JxAqjcglJcnr extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表ID
|
||||
*/
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 检查内容value
|
||||
*/
|
||||
private String examineValue;
|
||||
|
||||
/**
|
||||
* 检查内容数据
|
||||
*/
|
||||
private String examineContent;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——问题详情对象 jx_aqjcgl_wtxq
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("jx_aqjcgl_wtxq")
|
||||
public class JxAqjcglWtxq extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表ID
|
||||
*/
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 问题详情
|
||||
*/
|
||||
private String issueParticulars;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Data
|
||||
public class MonthDateRange {
|
||||
|
||||
private LocalDate startDate; // 当月1号
|
||||
private LocalDate endDate; // 当月最后一天
|
||||
private String yearMonth; // 年月标识
|
||||
|
||||
|
||||
|
||||
|
||||
// 构造方法
|
||||
public MonthDateRange(LocalDate startDate, LocalDate endDate, String yearMonth) {
|
||||
this.startDate = startDate;
|
||||
this.endDate = endDate;
|
||||
this.yearMonth = yearMonth;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,164 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain.bo;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录业务对象 jx_aqjcgl
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = JxAqjcgl.class, reverseConvertGenerate = false)
|
||||
public class JxAqjcglBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 检查单编号
|
||||
*/
|
||||
private String inspectionOrderNo;
|
||||
|
||||
/**
|
||||
* 检查日期
|
||||
*/
|
||||
@NotNull(message = "检查日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate inspectionDate;
|
||||
|
||||
/**
|
||||
* 检查类型
|
||||
*/
|
||||
@NotBlank(message = "检查类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String inspectionType;
|
||||
|
||||
/**
|
||||
* 检查人
|
||||
*/
|
||||
@NotNull(message = "检查人不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long inspector;
|
||||
|
||||
/**
|
||||
* 参与人(多个用逗号分隔)
|
||||
*/
|
||||
private String participants;
|
||||
|
||||
|
||||
/**
|
||||
* 整改状态
|
||||
*/
|
||||
private String abarbeitungState;
|
||||
|
||||
/**
|
||||
* 选择分包还是班组
|
||||
*/
|
||||
private String rectificationUnit;
|
||||
|
||||
/**
|
||||
* 整改单位
|
||||
*/
|
||||
private Long rectificationId;
|
||||
|
||||
/**
|
||||
* 所属项目(如田东)
|
||||
*/
|
||||
@NotNull(message = "所属项目(如田东)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectStation;
|
||||
|
||||
/**
|
||||
* 所属项目名称(如田东)
|
||||
*/
|
||||
@NotNull(message = "所属项目名称(如田东)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 机械设备id
|
||||
*/
|
||||
@NotBlank(message = "机械设备id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String equipmentId;
|
||||
|
||||
/**
|
||||
* 机械设备名称
|
||||
*/
|
||||
@NotBlank(message = "机械设备名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 机械设备编号
|
||||
*/
|
||||
// @NotBlank(message = "机械设备编号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String equipmentCode;
|
||||
|
||||
/**
|
||||
* 设备类型(下拉选择项)
|
||||
*/
|
||||
@NotBlank(message = "设备类型(下拉选择项)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String equipmentType;
|
||||
|
||||
/**
|
||||
* 检查结果
|
||||
*/
|
||||
@NotBlank(message = "检查结果不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String inspectionResult;
|
||||
|
||||
/**
|
||||
* 不通过原因
|
||||
*/
|
||||
private String notPassCause;
|
||||
|
||||
/**
|
||||
* 风险等级
|
||||
*/
|
||||
private String riskGrade;
|
||||
|
||||
/**
|
||||
* 整改责任人
|
||||
*/
|
||||
private Long abarbeitung;
|
||||
|
||||
/**
|
||||
* 整改日期
|
||||
*/
|
||||
private LocalDate abarbeitungDate;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
|
||||
/**
|
||||
* 检查内容
|
||||
*/
|
||||
private List<JxAqjcglJcnrBo> jcnrList;
|
||||
/**
|
||||
* 问题详情
|
||||
*/
|
||||
private List<JxAqjcglWtxqBo> wtxqBoList;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain.bo;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——检查内容业务对象 jx_aqjcgl_jcnr
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = JxAqjcglJcnr.class, reverseConvertGenerate = false)
|
||||
public class JxAqjcglJcnrBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表ID
|
||||
*/
|
||||
@NotNull(message = "主表ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 检查内容key
|
||||
*/
|
||||
@NotBlank(message = "检查内容value不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String examineValue;
|
||||
/**
|
||||
* 检查内容数据
|
||||
*/
|
||||
@NotBlank(message = "检查内容数据不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String examineContent;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain.bo;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——问题详情业务对象 jx_aqjcgl_wtxq
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = JxAqjcglWtxq.class, reverseConvertGenerate = false)
|
||||
public class JxAqjcglWtxqBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表ID
|
||||
*/
|
||||
@NotNull(message = "主表ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 问题详情
|
||||
*/
|
||||
@NotBlank(message = "问题详情不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String issueParticulars;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class JxAnqjcgHeadVo implements Serializable {
|
||||
|
||||
/**
|
||||
* 月份
|
||||
*/
|
||||
private String month = "";
|
||||
|
||||
/**
|
||||
* 总数
|
||||
*/
|
||||
private Long zs = 0L;
|
||||
|
||||
/**
|
||||
* 未通过
|
||||
*/
|
||||
private Long wtg = 0L;
|
||||
|
||||
/**
|
||||
* 通过
|
||||
*/
|
||||
private Long tg = 0L;
|
||||
|
||||
|
||||
/**
|
||||
* 待检测
|
||||
*/
|
||||
private Long djc = 0L;
|
||||
|
||||
|
||||
/**
|
||||
* 整改完成率
|
||||
*/
|
||||
// private String wcl = "0%";
|
||||
|
||||
/**
|
||||
* 日常巡检
|
||||
*/
|
||||
private Long rcxj = 0L;
|
||||
|
||||
/**
|
||||
* 周检
|
||||
*/
|
||||
private Long zj = 0L;
|
||||
|
||||
/**
|
||||
* 月检
|
||||
*/
|
||||
private Long yj = 0L;
|
||||
|
||||
/**
|
||||
* 专项检查
|
||||
*/
|
||||
private Long zxjc = 0L;
|
||||
/**
|
||||
* 复检
|
||||
*/
|
||||
private Long fj = 0L;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain.vo;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——检查内容视图对象 jx_aqjcgl_jcnr
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = JxAqjcglJcnr.class)
|
||||
public class JxAqjcglJcnrVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表ID
|
||||
*/
|
||||
@ExcelProperty(value = "主表ID")
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 检查内容key
|
||||
*/
|
||||
@ExcelProperty(value = "检查内容value")
|
||||
private String examineValue;
|
||||
/**
|
||||
* 检查内容数据
|
||||
*/
|
||||
@ExcelProperty(value = "检查内容数据")
|
||||
private String examineContent;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,222 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglJcnrBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglWtxqBo;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 机械安全检查记录视图对象 jx_aqjcgl
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = JxAqjcgl.class)
|
||||
public class JxAqjcglVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 检查单编号
|
||||
*/
|
||||
@ExcelProperty(value = "检查单编号")
|
||||
private String inspectionOrderNo;
|
||||
|
||||
/**
|
||||
* 检查日期
|
||||
*/
|
||||
@ExcelProperty(value = "检查日期")
|
||||
private LocalDate inspectionDate;
|
||||
|
||||
/**
|
||||
* 检查类型
|
||||
*/
|
||||
@ExcelProperty(value = "检查类型")
|
||||
private String inspectionType;
|
||||
|
||||
/**
|
||||
* 检查人
|
||||
*/
|
||||
@ExcelProperty(value = "检查人")
|
||||
private Long inspector;
|
||||
|
||||
|
||||
/**
|
||||
* 整改状态
|
||||
*/
|
||||
private String abarbeitungState;
|
||||
|
||||
/**
|
||||
* 选择分包还是班组
|
||||
*/
|
||||
private String rectificationUnit;
|
||||
|
||||
/**
|
||||
* 整改单位
|
||||
*/
|
||||
private Long rectificationId;
|
||||
|
||||
/**
|
||||
* 整改单位
|
||||
*/
|
||||
private String rectificationName;
|
||||
/**
|
||||
* 检查人
|
||||
*/
|
||||
@ExcelProperty(value = "检查人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspector")
|
||||
private String inspectorName;
|
||||
|
||||
/**
|
||||
* 参与人(多个用逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "参与人")
|
||||
private String participants;
|
||||
|
||||
/**
|
||||
* 所属项目(如田东)
|
||||
*/
|
||||
@ExcelProperty(value = "所属项目(如田东)")
|
||||
private Long projectStation;
|
||||
|
||||
/**
|
||||
* 所属项目名称(如田东)
|
||||
*/
|
||||
@ExcelProperty(value = "所属项目名称(如田东)")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 机械设备id
|
||||
*/
|
||||
@ExcelProperty(value = "机械设备id")
|
||||
private String equipmentId;
|
||||
|
||||
/**
|
||||
* 机械设备名称
|
||||
*/
|
||||
@ExcelProperty(value = "机械设备名称")
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 机械设备编号
|
||||
*/
|
||||
@ExcelProperty(value = "机械设备编号")
|
||||
private String equipmentCode;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
@ExcelProperty(value = "设备类型")
|
||||
private String equipmentType;
|
||||
|
||||
/**
|
||||
* 检查结果
|
||||
*/
|
||||
@ExcelProperty(value = "检查结果")
|
||||
private String inspectionResult;
|
||||
|
||||
/**
|
||||
* 风险等级
|
||||
*/
|
||||
@ExcelProperty(value = "风险等级")
|
||||
private String riskGrade;
|
||||
|
||||
/**
|
||||
* 整改责任人
|
||||
*/
|
||||
@ExcelProperty(value = "整改责任人")
|
||||
private Long abarbeitung;
|
||||
|
||||
|
||||
/**
|
||||
* 整改责任人
|
||||
*/
|
||||
@ExcelProperty(value = "整改责任人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "abarbeitung")
|
||||
private String abarbeitungName;
|
||||
|
||||
|
||||
/**
|
||||
* 整改日期
|
||||
*/
|
||||
@ExcelProperty(value = "整改日期")
|
||||
private LocalDate abarbeitungDate;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
/**
|
||||
* 不通过原因
|
||||
*/
|
||||
private String notPassCause;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByname;
|
||||
|
||||
/**
|
||||
* 检查内容
|
||||
*/
|
||||
private List<JxAqjcglJcnr> jcnrList;
|
||||
/**
|
||||
* 问题详情
|
||||
*/
|
||||
private List<JxAqjcglWtxq> wtxqBoList;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
package org.dromara.mechanical.jxaqgl.domain.vo;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——问题详情视图对象 jx_aqjcgl_wtxq
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = JxAqjcglWtxq.class)
|
||||
public class JxAqjcglWtxqVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表ID
|
||||
*/
|
||||
@ExcelProperty(value = "主表ID")
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 问题详情
|
||||
*/
|
||||
@ExcelProperty(value = "问题详情")
|
||||
private String issueParticulars;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.mechanical.jxaqgl.mapper;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglJcnrVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——检查内容Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface JxAqjcglJcnrMapper extends BaseMapperPlus<JxAqjcglJcnr, JxAqjcglJcnrVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.mechanical.jxaqgl.mapper;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface JxAqjcglMapper extends BaseMapperPlus<JxAqjcgl, JxAqjcglVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.mechanical.jxaqgl.mapper;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglWtxqVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——问题详情Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface JxAqjcglWtxqMapper extends BaseMapperPlus<JxAqjcglWtxq, JxAqjcglWtxqVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.mechanical.jxaqgl.service;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglJcnrVo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglJcnrBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——检查内容Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IJxAqjcglJcnrService extends IService<JxAqjcglJcnr>{
|
||||
|
||||
/**
|
||||
* 查询机械安全检查记录——检查内容
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 机械安全检查记录——检查内容
|
||||
*/
|
||||
JxAqjcglJcnrVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询机械安全检查记录——检查内容列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 机械安全检查记录——检查内容分页列表
|
||||
*/
|
||||
TableDataInfo<JxAqjcglJcnrVo> queryPageList(JxAqjcglJcnrBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的机械安全检查记录——检查内容列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 机械安全检查记录——检查内容列表
|
||||
*/
|
||||
List<JxAqjcglJcnrVo> queryList(JxAqjcglJcnrBo bo);
|
||||
|
||||
/**
|
||||
* 新增机械安全检查记录——检查内容
|
||||
*
|
||||
* @param bo 机械安全检查记录——检查内容
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(JxAqjcglJcnrBo bo);
|
||||
|
||||
/**
|
||||
* 修改机械安全检查记录——检查内容
|
||||
*
|
||||
* @param bo 机械安全检查记录——检查内容
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(JxAqjcglJcnrBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除机械安全检查记录——检查内容信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package org.dromara.mechanical.jxaqgl.service;
|
||||
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAnqjcgHeadVo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglVo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IJxAqjcglService extends IService<JxAqjcgl>{
|
||||
|
||||
/**
|
||||
* 查询机械安全检查记录
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 机械安全检查记录
|
||||
*/
|
||||
JxAqjcglVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询机械安全检查记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 机械安全检查记录分页列表
|
||||
*/
|
||||
TableDataInfo<JxAqjcglVo> queryPageList(JxAqjcglBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的机械安全检查记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 机械安全检查记录列表
|
||||
*/
|
||||
List<JxAqjcglVo> queryList(JxAqjcglBo bo);
|
||||
|
||||
/**
|
||||
* 新增机械安全检查记录
|
||||
*
|
||||
* @param bo 机械安全检查记录
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(JxAqjcglBo bo);
|
||||
|
||||
/**
|
||||
* 修改机械安全检查记录
|
||||
*
|
||||
* @param bo 机械安全检查记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(JxAqjcglBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除机械安全检查记录信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
JxAnqjcgHeadVo listHead(JxAqjcglBo bo, PageQuery pageQuery);
|
||||
|
||||
List<JxAnqjcgHeadVo> listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery);
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.mechanical.jxaqgl.service;
|
||||
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglWtxqVo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglWtxqBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——问题详情Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IJxAqjcglWtxqService extends IService<JxAqjcglWtxq>{
|
||||
|
||||
/**
|
||||
* 查询机械安全检查记录——问题详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 机械安全检查记录——问题详情
|
||||
*/
|
||||
JxAqjcglWtxqVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询机械安全检查记录——问题详情列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 机械安全检查记录——问题详情分页列表
|
||||
*/
|
||||
TableDataInfo<JxAqjcglWtxqVo> queryPageList(JxAqjcglWtxqBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的机械安全检查记录——问题详情列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 机械安全检查记录——问题详情列表
|
||||
*/
|
||||
List<JxAqjcglWtxqVo> queryList(JxAqjcglWtxqBo bo);
|
||||
|
||||
/**
|
||||
* 新增机械安全检查记录——问题详情
|
||||
*
|
||||
* @param bo 机械安全检查记录——问题详情
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(JxAqjcglWtxqBo bo);
|
||||
|
||||
/**
|
||||
* 修改机械安全检查记录——问题详情
|
||||
*
|
||||
* @param bo 机械安全检查记录——问题详情
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(JxAqjcglWtxqBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除机械安全检查记录——问题详情信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,132 @@
|
||||
package org.dromara.mechanical.jxaqgl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglJcnrBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglJcnrVo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr;
|
||||
import org.dromara.mechanical.jxaqgl.mapper.JxAqjcglJcnrMapper;
|
||||
import org.dromara.mechanical.jxaqgl.service.IJxAqjcglJcnrService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——检查内容Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class JxAqjcglJcnrServiceImpl extends ServiceImpl<JxAqjcglJcnrMapper, JxAqjcglJcnr> implements IJxAqjcglJcnrService {
|
||||
|
||||
private final JxAqjcglJcnrMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询机械安全检查记录——检查内容
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 机械安全检查记录——检查内容
|
||||
*/
|
||||
@Override
|
||||
public JxAqjcglJcnrVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询机械安全检查记录——检查内容列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 机械安全检查记录——检查内容分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<JxAqjcglJcnrVo> queryPageList(JxAqjcglJcnrBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<JxAqjcglJcnr> lqw = buildQueryWrapper(bo);
|
||||
Page<JxAqjcglJcnrVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的机械安全检查记录——检查内容列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 机械安全检查记录——检查内容列表
|
||||
*/
|
||||
@Override
|
||||
public List<JxAqjcglJcnrVo> queryList(JxAqjcglJcnrBo bo) {
|
||||
LambdaQueryWrapper<JxAqjcglJcnr> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<JxAqjcglJcnr> buildQueryWrapper(JxAqjcglJcnrBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<JxAqjcglJcnr> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(JxAqjcglJcnr::getId);
|
||||
lqw.eq(bo.getMasterId() != null, JxAqjcglJcnr::getMasterId, bo.getMasterId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getExamineContent()), JxAqjcglJcnr::getExamineContent, bo.getExamineContent());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增机械安全检查记录——检查内容
|
||||
*
|
||||
* @param bo 机械安全检查记录——检查内容
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(JxAqjcglJcnrBo bo) {
|
||||
JxAqjcglJcnr add = MapstructUtils.convert(bo, JxAqjcglJcnr.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机械安全检查记录——检查内容
|
||||
*
|
||||
* @param bo 机械安全检查记录——检查内容
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(JxAqjcglJcnrBo bo) {
|
||||
JxAqjcglJcnr update = MapstructUtils.convert(bo, JxAqjcglJcnr.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(JxAqjcglJcnr entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除机械安全检查记录——检查内容信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,363 @@
|
||||
package org.dromara.mechanical.jxaqgl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.enums.InspectionRectificationUnitType;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.dromara.contractor.domain.SubContractor;
|
||||
import org.dromara.contractor.service.ISubContractorService;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglJcnr;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.mechanical.jxaqgl.domain.MonthDateRange;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglJcnrBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglWtxqBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAnqjcgHeadVo;
|
||||
import org.dromara.mechanical.jxaqgl.service.IJxAqjcglJcnrService;
|
||||
import org.dromara.mechanical.jxaqgl.service.IJxAqjcglWtxqService;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh;
|
||||
import org.dromara.mechanical.jxzgbh.domain.bo.JxYhzgbhBo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo;
|
||||
import org.dromara.mechanical.jxzgbh.service.IJxYhzgbhService;
|
||||
import org.dromara.mechanical.jxzgbh.service.IJxZgxxService;
|
||||
import org.dromara.project.domain.BusProjectTeam;
|
||||
import org.dromara.project.service.IBusProjectService;
|
||||
import org.dromara.project.service.IBusProjectTeamService;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglVo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl;
|
||||
import org.dromara.mechanical.jxaqgl.mapper.JxAqjcglMapper;
|
||||
import org.dromara.mechanical.jxaqgl.service.IJxAqjcglService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class JxAqjcglServiceImpl extends ServiceImpl<JxAqjcglMapper, JxAqjcgl> implements IJxAqjcglService {
|
||||
|
||||
private final JxAqjcglMapper baseMapper;
|
||||
|
||||
private final IJxAqjcglJcnrService jxAqjcglJcnrService;
|
||||
|
||||
private final IJxAqjcglWtxqService jxAqjcglWtxqService;
|
||||
|
||||
|
||||
private final SysOssServiceImpl sysOssService;
|
||||
|
||||
@Resource
|
||||
private ISubContractorService contractorService;
|
||||
|
||||
@Resource
|
||||
private IBusProjectTeamService projectTeamService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IJxYhzgbhService jxYhzgbhService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械安全检查记录
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 机械安全检查记录
|
||||
*/
|
||||
@Override
|
||||
public JxAqjcglVo queryById(Long id){
|
||||
JxAqjcglVo jxAqjcglVo = baseMapper.selectVoById(id);
|
||||
saveValue(jxAqjcglVo);
|
||||
return jxAqjcglVo;
|
||||
}
|
||||
|
||||
private void saveValue(JxAqjcglVo jxAqjcglVo) {
|
||||
if (jxAqjcglVo != null) {
|
||||
List<JxAqjcglWtxq> jxAqjcglWtxqs = jxAqjcglWtxqService.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcglWtxq>().eq(JxAqjcglWtxq::getMasterId, jxAqjcglVo.getId()));
|
||||
List<JxAqjcglJcnr> jxAqjcglJcnrs = jxAqjcglJcnrService.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcglJcnr>().eq(JxAqjcglJcnr::getMasterId, jxAqjcglVo.getId()));
|
||||
jxAqjcglVo.setWtxqBoList(jxAqjcglWtxqs);
|
||||
jxAqjcglVo.setJcnrList(jxAqjcglJcnrs);
|
||||
|
||||
// 关联整改单位信息
|
||||
Long rectificationId = jxAqjcglVo.getRectificationId();
|
||||
String rectificationUnit = jxAqjcglVo.getRectificationUnit();
|
||||
if (rectificationId != null && rectificationUnit != null) {
|
||||
if (rectificationUnit.equals(InspectionRectificationUnitType.CONTRACTOR.getValue())) {
|
||||
SubContractor contractor = contractorService.getById(rectificationId);
|
||||
jxAqjcglVo.setRectificationName(contractor.getName());
|
||||
} else if (rectificationUnit.equals(InspectionRectificationUnitType.TEAM.getValue())) {
|
||||
BusProjectTeam team = projectTeamService.getById(rectificationId);
|
||||
if (team != null) {
|
||||
jxAqjcglVo.setRectificationName(team.getTeamName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询机械安全检查记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 机械安全检查记录分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<JxAqjcglVo> queryPageList(JxAqjcglBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<JxAqjcgl> lqw = buildQueryWrapper(bo);
|
||||
Page<JxAqjcglVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的机械安全检查记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 机械安全检查记录列表
|
||||
*/
|
||||
@Override
|
||||
public List<JxAqjcglVo> queryList(JxAqjcglBo bo) {
|
||||
LambdaQueryWrapper<JxAqjcgl> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<JxAqjcgl> buildQueryWrapper(JxAqjcglBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<JxAqjcgl> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(JxAqjcgl::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionOrderNo()), JxAqjcgl::getInspectionOrderNo, bo.getInspectionOrderNo());
|
||||
lqw.eq(bo.getInspectionDate() != null, JxAqjcgl::getInspectionDate, bo.getInspectionDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionType()), JxAqjcgl::getInspectionType, bo.getInspectionType());
|
||||
lqw.eq(bo.getInspector() != null, JxAqjcgl::getInspector, bo.getInspector());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getParticipants()), JxAqjcgl::getParticipants, bo.getParticipants());
|
||||
lqw.eq(bo.getProjectStation() != null, JxAqjcgl::getProjectStation, bo.getProjectStation());
|
||||
lqw.like(bo.getProjectName() != null, JxAqjcgl::getProjectName, bo.getProjectName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEquipmentId()), JxAqjcgl::getEquipmentId, bo.getEquipmentId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), JxAqjcgl::getEquipmentName, bo.getEquipmentName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEquipmentCode()), JxAqjcgl::getEquipmentCode, bo.getEquipmentCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEquipmentType()), JxAqjcgl::getEquipmentType, bo.getEquipmentType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInspectionResult()), JxAqjcgl::getInspectionResult, bo.getInspectionResult());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRiskGrade()), JxAqjcgl::getRiskGrade, bo.getRiskGrade());
|
||||
lqw.eq(bo.getAbarbeitung() != null, JxAqjcgl::getAbarbeitung, bo.getAbarbeitung());
|
||||
lqw.eq(bo.getAbarbeitungDate() != null, JxAqjcgl::getAbarbeitungDate, bo.getAbarbeitungDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), JxAqjcgl::getAuditStatus, bo.getAuditStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxAqjcgl::getFileId, bo.getFileId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增机械安全检查记录
|
||||
*
|
||||
* @param bo 机械安全检查记录
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(JxAqjcglBo bo) {
|
||||
JxAqjcgl add = MapstructUtils.convert(bo, JxAqjcgl.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("JXAQJCJL-");
|
||||
add.setInspectionOrderNo(banBen);
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
// 问题情况添加
|
||||
List<JxAqjcglWtxqBo> wtxqBoList = bo.getWtxqBoList();
|
||||
if (wtxqBoList != null && wtxqBoList.size() > 0) {
|
||||
wtxqBoList.stream().forEach(wtxqBo -> wtxqBo.setMasterId(add.getId()));
|
||||
jxAqjcglWtxqService.saveBatch(MapstructUtils.convert(wtxqBoList, JxAqjcglWtxq.class));
|
||||
}
|
||||
|
||||
// 检查内容添加
|
||||
List<JxAqjcglJcnrBo> jcnrList = bo.getJcnrList();
|
||||
if (jcnrList != null && jcnrList.size() > 0) {
|
||||
jcnrList.stream().forEach(wtxqBo -> wtxqBo.setMasterId(add.getId()));
|
||||
jxAqjcglJcnrService.saveBatch(MapstructUtils.convert(jcnrList, JxAqjcglJcnr.class));
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机械安全检查记录
|
||||
*
|
||||
* @param bo 机械安全检查记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(JxAqjcglBo bo) {
|
||||
JxAqjcgl update = MapstructUtils.convert(bo, JxAqjcgl.class);
|
||||
validEntityBeforeSave(update);
|
||||
if ("2".equals(bo.getInspectionResult())){
|
||||
update.setAbarbeitungState("1");
|
||||
JxYhzgbh jxYhzgbh = jxYhzgbhService.getBaseMapper().selectOne(new LambdaQueryWrapper<JxYhzgbh>().eq(JxYhzgbh::getMasterId, update.getId()));
|
||||
if (jxYhzgbh != null) throw new ServiceException("该数据已存在整改数据");
|
||||
// 不通过转为整改数据
|
||||
JxYhzgbhBo jxYhzgbhBo = new JxYhzgbhBo();
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("JXZGBH-");
|
||||
jxYhzgbhBo.setInspectionOrderNo(banBen);
|
||||
jxYhzgbhBo.setMasterId(bo.getId());
|
||||
jxYhzgbhBo.setInspectionJcdNo(bo.getInspectionOrderNo());
|
||||
jxYhzgbhBo.setInspector(bo.getInspector());
|
||||
jxYhzgbhBo.setRiskGrade(bo.getRiskGrade());
|
||||
jxYhzgbhBo.setAbarbeitung(bo.getAbarbeitung());
|
||||
jxYhzgbhBo.setYhly("1");
|
||||
jxYhzgbhBo.setReviewState("2");
|
||||
jxYhzgbhBo.setAbarbeitungState("1");
|
||||
jxYhzgbhBo.setEquipmentName(bo.getEquipmentName());
|
||||
jxYhzgbhBo.setDiscoverDate(bo.getInspectionDate());
|
||||
jxYhzgbhBo.setDiscoverId(bo.getCreateBy());
|
||||
jxYhzgbhService.insertByBo(jxYhzgbhBo);
|
||||
|
||||
}
|
||||
// 问题情况添加
|
||||
List<JxAqjcglWtxqBo> wtxqBoList = bo.getWtxqBoList();
|
||||
jxAqjcglWtxqService.getBaseMapper().delete(new LambdaQueryWrapper<JxAqjcglWtxq>().eq(JxAqjcglWtxq::getMasterId, update.getId()));
|
||||
if (wtxqBoList != null && wtxqBoList.size() > 0) {
|
||||
wtxqBoList.stream().forEach(wtxqBo -> wtxqBo.setMasterId(update.getId()));
|
||||
jxAqjcglWtxqService.saveBatch(MapstructUtils.convert(wtxqBoList, JxAqjcglWtxq.class));
|
||||
}
|
||||
|
||||
// 检查内容添加
|
||||
List<JxAqjcglJcnrBo> jcnrList = bo.getJcnrList();
|
||||
jxAqjcglJcnrService.getBaseMapper().delete(new LambdaQueryWrapper<JxAqjcglJcnr>().eq(JxAqjcglJcnr::getMasterId, update.getId()));
|
||||
if (jcnrList != null && jcnrList.size() > 0) {
|
||||
jcnrList.stream().forEach(wtxqBo -> wtxqBo.setMasterId(update.getId()));
|
||||
jxAqjcglJcnrService.saveBatch(MapstructUtils.convert(jcnrList, JxAqjcglJcnr.class));
|
||||
}
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(JxAqjcgl entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除机械安全检查记录信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
|
||||
for (Long id : ids) {
|
||||
JxYhzgbh jxYhzgbh = jxYhzgbhService.getBaseMapper().selectOne(new LambdaQueryWrapper<JxYhzgbh>().eq(JxYhzgbh::getMasterId, id));
|
||||
if (jxYhzgbh != null) throw new ServiceException("隐患整改编号为"+jxYhzgbh.getInspectionOrderNo()+"已存在整改数据,无法删除");
|
||||
JxAqjcglVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
if (vo.getPdfId()!= null && !vo.getPdfId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getPdfId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
jxAqjcglWtxqService.getBaseMapper().delete(new LambdaQueryWrapper<JxAqjcglWtxq>().in(JxAqjcglWtxq::getMasterId, ids));
|
||||
jxAqjcglJcnrService.getBaseMapper().delete(new LambdaQueryWrapper<JxAqjcglJcnr>().in(JxAqjcglJcnr::getMasterId, ids));
|
||||
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JxAnqjcgHeadVo listHead(JxAqjcglBo bo, PageQuery pageQuery) {
|
||||
JxAnqjcgHeadVo jxAnqjcgHeadVo = new JxAnqjcgHeadVo();
|
||||
List<JxAqjcgl> jxAqjcgls = this.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcgl>().le(JxAqjcgl::getCreateTime, LocalDate.now().plusDays(1)).ge(JxAqjcgl::getCreateTime, LocalDate.now().minusDays(29)));
|
||||
if (jxAqjcgls != null && jxAqjcgls.size() > 0) {
|
||||
jxAnqjcgHeadVo.setZs(Long.valueOf(jxAqjcgls.size()));
|
||||
jxAnqjcgHeadVo.setTg(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionResult().equals("1")).count());
|
||||
jxAnqjcgHeadVo.setWtg(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionResult().equals("2")).count());
|
||||
jxAnqjcgHeadVo.setDjc(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionResult().equals("3")).count());
|
||||
|
||||
jxAnqjcgHeadVo.setRcxj(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("1")).count());
|
||||
jxAnqjcgHeadVo.setZj(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("2")).count());
|
||||
jxAnqjcgHeadVo.setYj(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("3")).count());
|
||||
jxAnqjcgHeadVo.setZxjc(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("4")).count());
|
||||
jxAnqjcgHeadVo.setFj(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionType().equals("5")).count());
|
||||
}
|
||||
return jxAnqjcgHeadVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JxAnqjcgHeadVo> listHeadJgqs(JxAqjcglBo bo, PageQuery pageQuery) {
|
||||
List<MonthDateRange> monthRanges = getLast6MonthsRange();
|
||||
ArrayList<JxAnqjcgHeadVo> jxAnqjcgHeadVos = new ArrayList<>();
|
||||
|
||||
for (MonthDateRange range : monthRanges) {
|
||||
JxAnqjcgHeadVo jxAnqjcgHeadVo = new JxAnqjcgHeadVo();
|
||||
List<JxAqjcgl> jxAqjcgls = this.getBaseMapper().selectList(new LambdaQueryWrapper<JxAqjcgl>().le(JxAqjcgl::getCreateTime, range.getEndDate()).ge(JxAqjcgl::getCreateTime, range.getStartDate()));
|
||||
jxAnqjcgHeadVo.setMonth(range.getYearMonth());
|
||||
if (jxAqjcgls != null && jxAqjcgls.size() > 0) {
|
||||
jxAnqjcgHeadVo.setZs(Long.valueOf(jxAqjcgls.size()));
|
||||
jxAnqjcgHeadVo.setWtg(jxAqjcgls.stream().filter(jxAqjcgl -> jxAqjcgl.getInspectionResult().equals("2")).count());
|
||||
}
|
||||
jxAnqjcgHeadVos.add(jxAnqjcgHeadVo);
|
||||
}
|
||||
|
||||
return jxAnqjcgHeadVos;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取近6个月的每月完整日期范围
|
||||
* @return 包含6个 MonthDateRange 对象的列表(按「当前月→最早月」排序)
|
||||
*/
|
||||
public static List<MonthDateRange> getLast6MonthsRange() {
|
||||
List<MonthDateRange> monthRangeList = new ArrayList<>();
|
||||
LocalDate today = LocalDate.now();
|
||||
|
||||
// 循环6次:当前月(i=0)、前1月(i=1)...前5月(i=5)
|
||||
for (int i = 0; i < 6; i++) {
|
||||
// 1. 获取目标月的1号(核心:先减月份,再设为当月1号,避免日期异常)
|
||||
LocalDate monthFirstDay = today.minusMonths(i).withDayOfMonth(1);
|
||||
|
||||
// 2. 获取目标月的最后一天(下个月1号 - 1天)
|
||||
LocalDate monthLastDay = monthFirstDay.plusMonths(1).minusDays(1);
|
||||
|
||||
// 3. 生成年月标识(如 "2024-05")
|
||||
String yearMonth = monthFirstDay.toString().substring(0, 7); // 截取 yyyy-MM 部分
|
||||
|
||||
// 4. 封装到对象并添加到列表
|
||||
monthRangeList.add(new MonthDateRange(monthFirstDay, monthLastDay, yearMonth));
|
||||
}
|
||||
|
||||
return monthRangeList;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,132 @@
|
||||
package org.dromara.mechanical.jxaqgl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxaqgl.domain.bo.JxAqjcglWtxqBo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.vo.JxAqjcglWtxqVo;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.mechanical.jxaqgl.mapper.JxAqjcglWtxqMapper;
|
||||
import org.dromara.mechanical.jxaqgl.service.IJxAqjcglWtxqService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录——问题详情Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class JxAqjcglWtxqServiceImpl extends ServiceImpl<JxAqjcglWtxqMapper, JxAqjcglWtxq> implements IJxAqjcglWtxqService {
|
||||
|
||||
private final JxAqjcglWtxqMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询机械安全检查记录——问题详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 机械安全检查记录——问题详情
|
||||
*/
|
||||
@Override
|
||||
public JxAqjcglWtxqVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询机械安全检查记录——问题详情列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 机械安全检查记录——问题详情分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<JxAqjcglWtxqVo> queryPageList(JxAqjcglWtxqBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<JxAqjcglWtxq> lqw = buildQueryWrapper(bo);
|
||||
Page<JxAqjcglWtxqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的机械安全检查记录——问题详情列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 机械安全检查记录——问题详情列表
|
||||
*/
|
||||
@Override
|
||||
public List<JxAqjcglWtxqVo> queryList(JxAqjcglWtxqBo bo) {
|
||||
LambdaQueryWrapper<JxAqjcglWtxq> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<JxAqjcglWtxq> buildQueryWrapper(JxAqjcglWtxqBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<JxAqjcglWtxq> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(JxAqjcglWtxq::getId);
|
||||
lqw.eq(bo.getMasterId() != null, JxAqjcglWtxq::getMasterId, bo.getMasterId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getIssueParticulars()), JxAqjcglWtxq::getIssueParticulars, bo.getIssueParticulars());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增机械安全检查记录——问题详情
|
||||
*
|
||||
* @param bo 机械安全检查记录——问题详情
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(JxAqjcglWtxqBo bo) {
|
||||
JxAqjcglWtxq add = MapstructUtils.convert(bo, JxAqjcglWtxq.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机械安全检查记录——问题详情
|
||||
*
|
||||
* @param bo 机械安全检查记录——问题详情
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(JxAqjcglWtxqBo bo) {
|
||||
JxAqjcglWtxq update = MapstructUtils.convert(bo, JxAqjcglWtxq.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(JxAqjcglWtxq entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除机械安全检查记录——问题详情信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -10,6 +10,7 @@ import org.dromara.device.domain.bo.DeviceInfoBo;
|
||||
import org.dromara.device.domain.vo.DeviceInfoVo;
|
||||
import org.dromara.device.service.IDeviceInfoService;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjlHeadVo;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -68,6 +69,16 @@ public class JxGzwxController extends BaseController {
|
||||
return jxGzwxService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据故障id查询机械故障维修记录列表
|
||||
*/
|
||||
@SaCheckPermission("jxgl:gzwx:list")
|
||||
@GetMapping("/getlistById/{id}")
|
||||
public List<JxGzwxJlVo> getlistById(@PathVariable("id") Long id) {
|
||||
return jxGzwxService.getlistById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出机械故障维修列表
|
||||
*/
|
||||
|
||||
@ -6,7 +6,10 @@ import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.mechanical.jxgl.domain.bo.JxGzwxBo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo;
|
||||
import org.dromara.mechanical.jxgl.service.IJxGzwxService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
@ -37,6 +40,20 @@ public class JxGzwxJlController extends BaseController {
|
||||
|
||||
private final IJxGzwxJlService jxGzwxJlService;
|
||||
|
||||
private final IJxGzwxService jxGzwxService;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械故障维修列表
|
||||
*/
|
||||
@SaCheckPermission("jxgl:gzwxJl:list")
|
||||
@GetMapping("/getlist")
|
||||
public TableDataInfo<JxGzwxVo> list(JxGzwxBo bo, PageQuery pageQuery) {
|
||||
return jxGzwxService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询机械故障维修记录列表
|
||||
*/
|
||||
|
||||
@ -9,7 +9,10 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.device.domain.bo.DeviceInfoBo;
|
||||
import org.dromara.device.domain.vo.DeviceInfoVo;
|
||||
import org.dromara.device.service.IDeviceInfoService;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjl;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjhHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo;
|
||||
import org.dromara.mechanical.jxgl.service.IJxWhjlService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
@ -40,6 +43,8 @@ public class JxWhjhController extends BaseController {
|
||||
|
||||
private final IJxWhjhService jxWhjhService;
|
||||
|
||||
|
||||
|
||||
private final IDeviceInfoService deviceInfoService;
|
||||
|
||||
|
||||
@ -56,6 +61,16 @@ public class JxWhjhController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据计划id查询记录信息列表
|
||||
*/
|
||||
@SaCheckPermission("jxgl:whjh:list")
|
||||
@GetMapping("/getlistById/{id}")
|
||||
public List<JxWhjlVo> getlistById(@PathVariable("id") Long id) {
|
||||
return jxWhjhService.getlistById(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械维护计划列表
|
||||
*/
|
||||
|
||||
@ -45,11 +45,6 @@ public class JxWhjlController extends BaseController {
|
||||
|
||||
private final IJxWhjhService jxWhjhService;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械维护计划列表
|
||||
*/
|
||||
|
||||
@ -32,6 +32,12 @@ public class JxGzwx extends BaseEntity {
|
||||
@TableId(value = "fault_id")
|
||||
private Long faultId;
|
||||
|
||||
/**
|
||||
* 故障名称
|
||||
*/
|
||||
private String faultName;
|
||||
|
||||
|
||||
/**
|
||||
* 台账ID
|
||||
*/
|
||||
|
||||
@ -38,6 +38,16 @@ public class JxGzwxJl extends BaseEntity {
|
||||
*/
|
||||
private Long faultId;
|
||||
|
||||
/**
|
||||
* 故障名称
|
||||
*/
|
||||
private String faultName;
|
||||
|
||||
/**
|
||||
* 故障记录名称
|
||||
*/
|
||||
private String faultjlName;
|
||||
|
||||
|
||||
/**
|
||||
* 台账ID
|
||||
|
||||
@ -39,6 +39,11 @@ public class JxWhjh extends BaseEntity {
|
||||
*/
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 维修计划名称
|
||||
*/
|
||||
private String wxjhName;
|
||||
|
||||
/**
|
||||
* 计划类型 字典
|
||||
*/
|
||||
|
||||
@ -82,6 +82,16 @@ public class JxWhjl extends BaseEntity {
|
||||
*/
|
||||
private String maintenanceResult;
|
||||
|
||||
/**
|
||||
* 维修计划名称
|
||||
*/
|
||||
private String wxjhName;
|
||||
|
||||
/**
|
||||
* 维修记录名称
|
||||
*/
|
||||
private String wxjlName;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@ -91,5 +91,16 @@ public class JxGzwxBo extends BaseEntity {
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 故障名称
|
||||
*/
|
||||
private String faultName;
|
||||
|
||||
|
||||
|
||||
private LocalDate startTime;
|
||||
|
||||
private LocalDate endTime;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
@ -33,6 +34,17 @@ public class JxGzwxJlBo extends BaseEntity {
|
||||
@NotNull(message = "故障ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long faultId;
|
||||
|
||||
|
||||
/**
|
||||
* 故障名称
|
||||
*/
|
||||
private String faultName;
|
||||
|
||||
/**
|
||||
* 故障记录名称
|
||||
*/
|
||||
private String faultjlName;
|
||||
|
||||
/**
|
||||
* 台账ID
|
||||
*/
|
||||
@ -108,4 +120,9 @@ public class JxGzwxJlBo extends BaseEntity {
|
||||
private String fileId;
|
||||
|
||||
|
||||
private LocalDate startTime;
|
||||
|
||||
private LocalDate endTime;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -56,6 +56,12 @@ public class JxWhjhBo extends BaseEntity {
|
||||
*/
|
||||
private String maintenanceItems;
|
||||
|
||||
|
||||
/**
|
||||
* 维修计划名称
|
||||
*/
|
||||
private String wxjhName;
|
||||
|
||||
/**
|
||||
* 周期类型 字典
|
||||
*/
|
||||
|
||||
@ -32,6 +32,16 @@ public class JxWhjlBo extends BaseEntity {
|
||||
*/
|
||||
private Long whjhId;
|
||||
|
||||
/**
|
||||
* 维修计划名称
|
||||
*/
|
||||
private String wxjhName;
|
||||
|
||||
/**
|
||||
* 维修记录名称
|
||||
*/
|
||||
private String wxjlName;
|
||||
|
||||
/**
|
||||
* 台账ID
|
||||
*/
|
||||
|
||||
@ -2,10 +2,14 @@ package org.dromara.mechanical.jxgl.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.mechanical.jxgl.domain.JxGzwxJl;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -52,6 +56,16 @@ public class JxGzwxJlVo implements Serializable {
|
||||
*/
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 故障名称
|
||||
*/
|
||||
private String faultName;
|
||||
|
||||
/**
|
||||
* 故障记录名称
|
||||
*/
|
||||
private String faultjlName;
|
||||
|
||||
/**
|
||||
* 故障ID
|
||||
*/
|
||||
@ -76,6 +90,14 @@ public class JxGzwxJlVo implements Serializable {
|
||||
@ExcelProperty(value = "维修人员")
|
||||
private Long repairPerson;
|
||||
|
||||
|
||||
/**
|
||||
* 维修人员
|
||||
*/
|
||||
@ExcelProperty(value = "维修人员")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "repairPerson")
|
||||
private String repairPersonName;
|
||||
|
||||
/**
|
||||
* 维修内容
|
||||
*/
|
||||
@ -91,8 +113,8 @@ public class JxGzwxJlVo implements Serializable {
|
||||
/**
|
||||
* 维修费用(材料费 + 工时费)
|
||||
*/
|
||||
@ExcelProperty(value = "维修费用", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "材=料费,+=,工=时费")
|
||||
@ExcelProperty(value = "维修费用")
|
||||
// @ExcelDictFormat(readConverterExp = "材料费和工时费")
|
||||
private BigDecimal repairCost;
|
||||
|
||||
/**
|
||||
@ -110,8 +132,8 @@ public class JxGzwxJlVo implements Serializable {
|
||||
/**
|
||||
* 状态 维修中 已恢复 关闭
|
||||
*/
|
||||
@ExcelProperty(value = "状态 维修中 已恢复 关闭", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "jx_gzwxzt")
|
||||
@ExcelProperty(value = "状态 维修中 已恢复 关闭")
|
||||
// @ExcelDictFormat(dictType = "jx_gzwxzt")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
@ -133,5 +155,26 @@ public class JxGzwxJlVo implements Serializable {
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByname;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,8 +1,12 @@
|
||||
package org.dromara.mechanical.jxgl.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.mechanical.jxgl.domain.JxGzwx;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -39,6 +43,11 @@ public class JxGzwxVo implements Serializable {
|
||||
@ExcelProperty(value = "故障ID")
|
||||
private Long faultId;
|
||||
|
||||
/**
|
||||
* 故障名称
|
||||
*/
|
||||
private String faultName;
|
||||
|
||||
/**
|
||||
* 台账ID
|
||||
*/
|
||||
@ -109,4 +118,19 @@ public class JxGzwxVo implements Serializable {
|
||||
private String fileId;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByname;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,11 @@
|
||||
package org.dromara.mechanical.jxgl.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjh;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -102,6 +107,19 @@ public class JxWhjhVo implements Serializable {
|
||||
@ExcelProperty(value = "负责人员")
|
||||
private Long responsiblePerson;
|
||||
|
||||
|
||||
/**
|
||||
* 负责人员
|
||||
*/
|
||||
@ExcelProperty(value = "负责人员")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "responsiblePerson")
|
||||
private String responsiblePersonname;
|
||||
|
||||
/**
|
||||
* 维修计划名称
|
||||
*/
|
||||
private String wxjhName;
|
||||
|
||||
/**
|
||||
* 状态 (未开始/进行中/已完成/逾期)
|
||||
*/
|
||||
@ -129,4 +147,19 @@ public class JxWhjhVo implements Serializable {
|
||||
private String fileId;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByname;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -2,9 +2,13 @@ package org.dromara.mechanical.jxgl.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjl;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -98,6 +102,13 @@ public class JxWhjlVo implements Serializable {
|
||||
@ExcelProperty(value = "执行人")
|
||||
private Long maintainer;
|
||||
|
||||
/**
|
||||
* 执行人
|
||||
*/
|
||||
@ExcelProperty(value = "执行人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "maintainer")
|
||||
private String maintainername;
|
||||
|
||||
/**
|
||||
* 保养结果(正常/异常/需复检)
|
||||
*/
|
||||
@ -118,5 +129,33 @@ public class JxWhjlVo implements Serializable {
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 维修计划名称
|
||||
*/
|
||||
private String wxjhName;
|
||||
|
||||
/**
|
||||
* 维修记录名称
|
||||
*/
|
||||
private String wxjlName;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createByname;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package org.dromara.mechanical.jxgl.service;
|
||||
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo;
|
||||
import org.dromara.mechanical.jxgl.domain.bo.JxGzwxBo;
|
||||
import org.dromara.mechanical.jxgl.domain.JxGzwx;
|
||||
@ -70,4 +71,6 @@ public interface IJxGzwxService extends IService<JxGzwx>{
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
JxGzwxHeadVo jxgzwx();
|
||||
|
||||
List<JxGzwxJlVo> getlistById(Long id);
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.mechanical.jxgl.service;
|
||||
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjl;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjhHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo;
|
||||
import org.dromara.mechanical.jxgl.domain.bo.JxWhjhBo;
|
||||
@ -8,6 +9,8 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -70,4 +73,6 @@ public interface IJxWhjhService extends IService<JxWhjh>{
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
JxWhjhHeadVo jxwhHead();
|
||||
|
||||
List<JxWhjlVo> getlistById(Long id);
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package org.dromara.mechanical.jxgl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -11,8 +12,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.mechanical.jxgl.domain.JxGzwx;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjl;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo;
|
||||
import org.dromara.mechanical.jxgl.service.IJxGzwxService;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxgl.domain.bo.JxGzwxJlBo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo;
|
||||
@ -22,9 +26,7 @@ import org.dromara.mechanical.jxgl.service.IJxGzwxJlService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 机械故障维修记录Service业务层处理
|
||||
@ -39,6 +41,7 @@ public class JxGzwxJlServiceImpl extends ServiceImpl<JxGzwxJlMapper, JxGzwxJl> i
|
||||
private final JxGzwxJlMapper baseMapper;
|
||||
|
||||
private final IJxGzwxService jxGzwxService;
|
||||
private final ISysOssService sysOssService;
|
||||
|
||||
/**
|
||||
* 查询机械故障维修记录
|
||||
@ -82,11 +85,14 @@ public class JxGzwxJlServiceImpl extends ServiceImpl<JxGzwxJlMapper, JxGzwxJl> i
|
||||
LambdaQueryWrapper<JxGzwxJl> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(JxGzwxJl::getId);
|
||||
lqw.eq(bo.getFaultId() != null, JxGzwxJl::getFaultId, bo.getFaultId());
|
||||
lqw.ge(bo.getStartTime() != null, JxGzwxJl::getCreateTime, bo.getStartTime());
|
||||
lqw.le(bo.getEndTime() != null, JxGzwxJl::getCreateTime, bo.getEndTime());
|
||||
lqw.eq(bo.getRepairStartTime() != null, JxGzwxJl::getRepairStartTime, bo.getRepairStartTime());
|
||||
lqw.eq(bo.getRepairEndTime() != null, JxGzwxJl::getRepairEndTime, bo.getRepairEndTime());
|
||||
lqw.eq(bo.getRepairPerson() != null, JxGzwxJl::getRepairPerson, bo.getRepairPerson());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRepairContent()), JxGzwxJl::getRepairContent, bo.getRepairContent());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPartsUsed()), JxGzwxJl::getPartsUsed, bo.getPartsUsed());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getFaultjlName()), JxGzwxJl::getFaultjlName, bo.getFaultjlName());
|
||||
lqw.eq(bo.getRepairCost() != null, JxGzwxJl::getRepairCost, bo.getRepairCost());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFaultCause()), JxGzwxJl::getFaultCause, bo.getFaultCause());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPreventiveActions()), JxGzwxJl::getPreventiveActions, bo.getPreventiveActions());
|
||||
@ -151,13 +157,28 @@ public class JxGzwxJlServiceImpl extends ServiceImpl<JxGzwxJlMapper, JxGzwxJl> i
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
JxGzwxJlVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JxGzwxHeadVo jxgzwx() {
|
||||
JxGzwxHeadVo jxGzwxHeadVo = new JxGzwxHeadVo();
|
||||
List<JxGzwxJl> jxGzwxes = this.baseMapper.selectList(new LambdaQueryWrapper<JxGzwxJl>().ge(JxGzwxJl::getCreateTime, LocalDate.now().with(TemporalAdjusters.firstDayOfMonth())));
|
||||
List<JxGzwxJl> jxGzwxes = this.baseMapper.selectList(new LambdaQueryWrapper<JxGzwxJl>().le(JxGzwxJl::getCreateTime, LocalDate.now().plusDays(1)).ge(JxGzwxJl::getCreateTime, LocalDate.now().minusDays(29)));
|
||||
if (jxGzwxes != null && jxGzwxes.size() > 0) {
|
||||
long wxz = jxGzwxes.stream().filter(jxGzwx -> "1".equals(jxGzwx.getStatus())).count();
|
||||
long hf = jxGzwxes.stream().filter(jxGzwx -> "2".equals(jxGzwx.getStatus())).count();
|
||||
|
||||
@ -9,10 +9,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.mechanical.jxgl.domain.JxGzwxJl;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjh;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo;
|
||||
import org.dromara.mechanical.jxgl.service.IJxGzwxJlService;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxgl.domain.bo.JxGzwxBo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxVo;
|
||||
@ -36,6 +41,10 @@ public class JxGzwxServiceImpl extends ServiceImpl<JxGzwxMapper, JxGzwx> impleme
|
||||
|
||||
private final JxGzwxMapper baseMapper;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IJxGzwxJlService jxGzwxJlService;
|
||||
|
||||
private final SysOssServiceImpl sysOssService;
|
||||
|
||||
/**
|
||||
@ -48,7 +57,6 @@ public class JxGzwxServiceImpl extends ServiceImpl<JxGzwxMapper, JxGzwx> impleme
|
||||
public JxGzwxVo queryById(Long faultId){
|
||||
return baseMapper.selectVoById(faultId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询机械故障维修列表
|
||||
*
|
||||
@ -81,6 +89,8 @@ public class JxGzwxServiceImpl extends ServiceImpl<JxGzwxMapper, JxGzwx> impleme
|
||||
lqw.orderByDesc(JxGzwx::getFaultId);
|
||||
lqw.eq(bo.getEquipmentId() != null, JxGzwx::getEquipmentId, bo.getEquipmentId());
|
||||
lqw.eq(bo.getFaultTime() != null, JxGzwx::getFaultTime, bo.getFaultTime());
|
||||
lqw.gt(bo.getStartTime() != null, JxGzwx::getFaultTime, bo.getStartTime());
|
||||
lqw.le(bo.getEndTime() != null, JxGzwx::getFaultTime, bo.getEndTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFaultType()), JxGzwx::getFaultType, bo.getFaultType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFaultDescription()), JxGzwx::getFaultDescription, bo.getFaultDescription());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSeverity()), JxGzwx::getSeverity, bo.getSeverity());
|
||||
@ -162,7 +172,7 @@ public class JxGzwxServiceImpl extends ServiceImpl<JxGzwxMapper, JxGzwx> impleme
|
||||
public JxGzwxHeadVo jxgzwx() {
|
||||
|
||||
JxGzwxHeadVo jxGzwxHeadVo = new JxGzwxHeadVo();
|
||||
List<JxGzwx> jxGzwxes = this.baseMapper.selectList(new LambdaQueryWrapper<JxGzwx>().ge(JxGzwx::getCreateTime, LocalDate.now().with(TemporalAdjusters.firstDayOfMonth())));
|
||||
List<JxGzwx> jxGzwxes = this.baseMapper.selectList(new LambdaQueryWrapper<JxGzwx>().le(JxGzwx::getCreateTime, LocalDate.now().plusDays(1)).ge(JxGzwx::getCreateTime, LocalDate.now().minusDays(29)));
|
||||
if (jxGzwxes != null && jxGzwxes.size() > 0) {
|
||||
long wxz = jxGzwxes.stream().filter(jxGzwx -> "1".equals(jxGzwx.getStatus())).count();
|
||||
long hf = jxGzwxes.stream().filter(jxGzwx -> "2".equals(jxGzwx.getStatus())).count();
|
||||
@ -175,4 +185,10 @@ public class JxGzwxServiceImpl extends ServiceImpl<JxGzwxMapper, JxGzwx> impleme
|
||||
|
||||
return jxGzwxHeadVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JxGzwxJlVo> getlistById(Long id) {
|
||||
List<JxGzwxJl> jxGzwxJls = jxGzwxJlService.getBaseMapper().selectList(new LambdaQueryWrapper<JxGzwxJl>().eq(JxGzwxJl::getFaultId, id));
|
||||
return MapstructUtils.convert(jxGzwxJls, JxGzwxJlVo.class);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package org.dromara.mechanical.jxgl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -9,15 +11,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.device.domain.DeviceInfo;
|
||||
import org.dromara.device.domain.vo.DeviceInfoVo;
|
||||
import org.dromara.device.service.IDeviceInfoService;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjl;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjhHeadVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjlVo;
|
||||
import org.dromara.mechanical.jxgl.service.IJxWhjlService;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.settlement.domain.vo.XzdJsSjJungonVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxgl.domain.bo.JxWhjhBo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjh;
|
||||
import org.dromara.mechanical.jxgl.mapper.JxWhjhMapper;
|
||||
import org.dromara.mechanical.jxgl.service.IJxWhjhService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
@ -34,6 +45,16 @@ import java.util.*;
|
||||
public class JxWhjhServiceImpl extends ServiceImpl<JxWhjhMapper, JxWhjh> implements IJxWhjhService {
|
||||
|
||||
private final JxWhjhMapper baseMapper;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IJxWhjlService jxWhjlService;
|
||||
|
||||
private final IDeviceInfoService deviceInfoService;
|
||||
|
||||
|
||||
|
||||
|
||||
private final SysOssServiceImpl sysOssService;
|
||||
|
||||
/**
|
||||
@ -100,9 +121,17 @@ public class JxWhjhServiceImpl extends ServiceImpl<JxWhjhMapper, JxWhjh> impleme
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(JxWhjhBo bo) {
|
||||
JxWhjh add = MapstructUtils.convert(bo, JxWhjh.class);
|
||||
validEntityBeforeSave(add);
|
||||
//反查数据判断是都被添加过
|
||||
JxWhjhVo jxWhjhVo = baseMapper.selectVoOne(new LambdaQueryWrapper<JxWhjh>().eq(JxWhjh::getEquipmentId, bo.getEquipmentId()));
|
||||
if (jxWhjhVo != null) throw new ServiceException("该设备已添加到维护计划");
|
||||
// 修改设备状态
|
||||
deviceInfoService.getBaseMapper().update(new LambdaUpdateWrapper<DeviceInfo>().set(DeviceInfo::getStatus,"2").eq(DeviceInfo::getId,bo.getEquipmentId()));
|
||||
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
@ -120,6 +149,16 @@ public class JxWhjhServiceImpl extends ServiceImpl<JxWhjhMapper, JxWhjh> impleme
|
||||
public Boolean updateByBo(JxWhjhBo bo) {
|
||||
JxWhjh update = MapstructUtils.convert(bo, JxWhjh.class);
|
||||
validEntityBeforeSave(update);
|
||||
Long l = jxWhjlService.getBaseMapper().selectCount(new LambdaQueryWrapper<JxWhjl>().eq(JxWhjl::getWhjhId, bo.getId()));
|
||||
if (l > 0) throw new ServiceException("该计划已添加保养记录,无法修改");
|
||||
|
||||
// //反查数据判断是都被添加过
|
||||
// JxWhjhVo jxWhjhVo = baseMapper.selectVoOne(new LambdaQueryWrapper<JxWhjh>().eq(JxWhjh::getEquipmentId, bo.getEquipmentId()));
|
||||
// if (jxWhjhVo != null) throw new ServiceException("该设备已添加到维护计划");
|
||||
//
|
||||
// // 修改设备状态
|
||||
// deviceInfoService.getBaseMapper().update(new LambdaUpdateWrapper<DeviceInfo>().set(DeviceInfo::getStatus,"2").eq(DeviceInfo::getId,bo.getEquipmentId()));
|
||||
//
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
@ -145,6 +184,9 @@ public class JxWhjhServiceImpl extends ServiceImpl<JxWhjhMapper, JxWhjh> impleme
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
JxWhjhVo vo = baseMapper.selectVoById(id);
|
||||
// 判断计划是否被引用
|
||||
Long l = jxWhjlService.getBaseMapper().selectCount(new LambdaQueryWrapper<JxWhjl>().eq(JxWhjl::getWhjhId, id));
|
||||
if (l > 0) throw new ServiceException("该计划被引用,请先删除计划下的记录");
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
@ -162,7 +204,7 @@ public class JxWhjhServiceImpl extends ServiceImpl<JxWhjhMapper, JxWhjh> impleme
|
||||
@Override
|
||||
public JxWhjhHeadVo jxwhHead() {
|
||||
JxWhjhHeadVo jxWhjhHeadVo = new JxWhjhHeadVo();
|
||||
List<JxWhjh> jxWhjhs = this.baseMapper.selectList(new LambdaQueryWrapper<JxWhjh>().ge(JxWhjh::getCreateTime, LocalDate.now().with(TemporalAdjusters.firstDayOfMonth())));
|
||||
List<JxWhjh> jxWhjhs = this.baseMapper.selectList(new LambdaQueryWrapper<JxWhjh>().le(JxWhjh::getCreateTime, LocalDate.now().plusDays(1)).ge(JxWhjh::getCreateTime, LocalDate.now().minusDays(29)));
|
||||
if (jxWhjhs != null && jxWhjhs.size() > 0) {
|
||||
long countwwc = jxWhjhs.stream().filter(jxwhjh -> "1".equals(jxwhjh.getStatus()) || "2".equals(jxwhjh.getStatus())).count();
|
||||
long countywc = jxWhjhs.stream().filter(jxwhjh -> "3".equals(jxwhjh.getStatus())).count();
|
||||
@ -174,4 +216,11 @@ public class JxWhjhServiceImpl extends ServiceImpl<JxWhjhMapper, JxWhjh> impleme
|
||||
}
|
||||
return jxWhjhHeadVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JxWhjlVo> getlistById(Long id) {
|
||||
List<JxWhjl> jxWhjls = jxWhjlService.getBaseMapper().selectList(new LambdaQueryWrapper<JxWhjl>().eq(JxWhjl::getWhjhId, id));
|
||||
|
||||
return MapstructUtils.convert(jxWhjls, JxWhjlVo.class);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.mechanical.jxgl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
@ -10,6 +11,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.device.domain.DeviceInfo;
|
||||
import org.dromara.device.service.IDeviceInfoService;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl;
|
||||
import org.dromara.mechanical.jxgl.domain.JxWhjh;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjhVo;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxWhjlHeadVo;
|
||||
@ -43,6 +47,8 @@ public class JxWhjlServiceImpl extends ServiceImpl<JxWhjlMapper, JxWhjl> impleme
|
||||
|
||||
private final SysOssServiceImpl sysOssService;
|
||||
|
||||
private final IDeviceInfoService deviceInfoService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械维护记录
|
||||
@ -112,11 +118,16 @@ public class JxWhjlServiceImpl extends ServiceImpl<JxWhjlMapper, JxWhjl> impleme
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (bo != null){
|
||||
if ("1".equals(bo.getMaintenanceResult())){
|
||||
// 修改设备状态
|
||||
deviceInfoService.getBaseMapper().update(new LambdaUpdateWrapper<DeviceInfo>().set(DeviceInfo::getStatus,"1").eq(DeviceInfo::getId,bo.getEquipmentId()));
|
||||
|
||||
jxWhjhService.getBaseMapper().update(new UpdateWrapper<JxWhjh>().eq("id",bo.getWhjhId()).set("status","3"));
|
||||
}else {
|
||||
jxWhjhService.getBaseMapper().update(new UpdateWrapper<JxWhjh>().eq("id",bo.getWhjhId()).set("status","2"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
@ -185,7 +196,7 @@ public class JxWhjlServiceImpl extends ServiceImpl<JxWhjlMapper, JxWhjl> impleme
|
||||
public JxWhjlHeadVo jxwhHead() {
|
||||
|
||||
JxWhjlHeadVo jxWhjlHeadVo = new JxWhjlHeadVo();
|
||||
List<JxWhjl> jxWhjls = this.baseMapper.selectList(new LambdaQueryWrapper<JxWhjl>().ge(JxWhjl::getCreateTime, LocalDate.now().with(TemporalAdjusters.firstDayOfMonth())));
|
||||
List<JxWhjl> jxWhjls = this.baseMapper.selectList(new LambdaQueryWrapper<JxWhjl>().le(JxWhjl::getCreateTime, LocalDate.now().plusDays(1)).ge(JxWhjl::getCreateTime, LocalDate.now().minusDays(29)));
|
||||
if (jxWhjls != null && jxWhjls.size() > 0) {
|
||||
long zc = jxWhjls.stream().filter(jxwhjl -> "1".equals(jxwhjl.getMaintenanceResult())).count();
|
||||
long yc = jxWhjls.stream().filter(jxwhjl -> "2".equals(jxwhjl.getMaintenanceResult())).count();
|
||||
|
||||
@ -0,0 +1,137 @@
|
||||
package org.dromara.mechanical.jxsgjl.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.device.domain.bo.DeviceInfoBo;
|
||||
import org.dromara.device.domain.vo.DeviceInfoVo;
|
||||
import org.dromara.device.service.IDeviceInfoService;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxHead;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo;
|
||||
import org.dromara.mechanical.jxsgjl.domain.bo.JxSgxxjlbBo;
|
||||
import org.dromara.mechanical.jxsgjl.service.IJxSgxxjlbService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 机械事故信息记录
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-04
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/jxsgjl/sgxxjlb")
|
||||
public class JxSgxxjlbController extends BaseController {
|
||||
|
||||
private final IJxSgxxjlbService jxSgxxjlbService;
|
||||
|
||||
|
||||
|
||||
private final IDeviceInfoService deviceInfoService;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询设备信息列表
|
||||
*/
|
||||
@SaCheckPermission("jxsgjl:sgxxjlb:list")
|
||||
@GetMapping("/getlist")
|
||||
public TableDataInfo<DeviceInfoVo> list(DeviceInfoBo bo, PageQuery pageQuery) {
|
||||
return deviceInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械事故信息记录列表
|
||||
*/
|
||||
@SaCheckPermission("jxsgjl:sgxxjlb:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<JxSgxxjlbVo> list(JxSgxxjlbBo bo, PageQuery pageQuery) {
|
||||
return jxSgxxjlbService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询机械事故记录头部数据
|
||||
*/
|
||||
@SaCheckPermission("jxsgjl:sgxxjlb:list")
|
||||
@GetMapping("/getHeadData")
|
||||
public R<JxSgxxHead> getHeadData() {
|
||||
return R.ok(jxSgxxjlbService.getHeadData());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出机械事故信息记录列表
|
||||
*/
|
||||
@SaCheckPermission("jxsgjl:sgxxjlb:export")
|
||||
@Log(title = "机械事故信息记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(JxSgxxjlbBo bo, HttpServletResponse response) {
|
||||
List<JxSgxxjlbVo> list = jxSgxxjlbService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "机械事故信息记录", JxSgxxjlbVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取机械事故信息记录详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("jxsgjl:sgxxjlb:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<JxSgxxjlbVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(jxSgxxjlbService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增机械事故信息记录
|
||||
*/
|
||||
@SaCheckPermission("jxsgjl:sgxxjlb:add")
|
||||
@Log(title = "机械事故信息记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody JxSgxxjlbBo bo) {
|
||||
return toAjax(jxSgxxjlbService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机械事故信息记录
|
||||
*/
|
||||
@SaCheckPermission("jxsgjl:sgxxjlb:edit")
|
||||
@Log(title = "机械事故信息记录", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody JxSgxxjlbBo bo) {
|
||||
return toAjax(jxSgxxjlbService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除机械事故信息记录
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("jxsgjl:sgxxjlb:remove")
|
||||
@Log(title = "机械事故信息记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(jxSgxxjlbService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,139 @@
|
||||
package org.dromara.mechanical.jxsgjl.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 机械事故信息记录对象 jx_sgxxjlb
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-04
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("jx_sgxxjlb")
|
||||
public class JxSgxxjlb extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 事故编号(如SGJL-20230620-001)
|
||||
*/
|
||||
private String accidentCode;
|
||||
|
||||
/**
|
||||
* 事故等级(下拉选择)
|
||||
*/
|
||||
private String accidentLevel;
|
||||
|
||||
/**
|
||||
* 事故类型(下拉选择)
|
||||
*/
|
||||
private String accidentType;
|
||||
|
||||
/**
|
||||
* 设备名称(下拉选择)
|
||||
*/
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 设备台账id
|
||||
*/
|
||||
private Long equipmentId;
|
||||
|
||||
/**
|
||||
* 发生时间
|
||||
*/
|
||||
private LocalDateTime occurrenceTime;
|
||||
|
||||
/**
|
||||
* 发生地点
|
||||
*/
|
||||
private String occurrencePlace;
|
||||
|
||||
/**
|
||||
* 事故描述(详细经过)
|
||||
*/
|
||||
private String accidentDescription;
|
||||
|
||||
/**
|
||||
* 直接损失金额(元)
|
||||
*/
|
||||
private BigDecimal directLoss;
|
||||
|
||||
/**
|
||||
* 间接损失金额(元)
|
||||
*/
|
||||
private BigDecimal indirectLoss;
|
||||
|
||||
/**
|
||||
* 事故原因分析
|
||||
*/
|
||||
private String accidentCause;
|
||||
|
||||
/**
|
||||
* 人员伤亡情况(如有)
|
||||
*/
|
||||
private String casualtySituation;
|
||||
|
||||
/**
|
||||
* 应急处理措施
|
||||
*/
|
||||
private String emergencyMeasures;
|
||||
|
||||
/**
|
||||
* 整改预防措施
|
||||
*/
|
||||
private String rectificationMeasures;
|
||||
|
||||
/**
|
||||
* 责任人
|
||||
*/
|
||||
private Long responsiblePerson;
|
||||
|
||||
/**
|
||||
* 处理结果
|
||||
*/
|
||||
private String handleResult;
|
||||
|
||||
/**
|
||||
* 记录人
|
||||
*/
|
||||
private Long recorder;
|
||||
|
||||
/**
|
||||
* 记录日期
|
||||
*/
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 照片文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,150 @@
|
||||
package org.dromara.mechanical.jxsgjl.domain.bo;
|
||||
|
||||
import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 机械事故信息记录业务对象 jx_sgxxjlb
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-04
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = JxSgxxjlb.class, reverseConvertGenerate = false)
|
||||
public class JxSgxxjlbBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 事故编号(如SGJL-20230620-001)
|
||||
*/
|
||||
private String accidentCode;
|
||||
|
||||
/**
|
||||
* 事故等级(下拉选择)
|
||||
*/
|
||||
@NotBlank(message = "事故等级(下拉选择)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String accidentLevel;
|
||||
|
||||
/**
|
||||
* 事故类型(下拉选择)
|
||||
*/
|
||||
@NotBlank(message = "事故类型(下拉选择)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String accidentType;
|
||||
|
||||
/**
|
||||
* 设备名称(下拉选择)
|
||||
*/
|
||||
@NotBlank(message = "设备名称(下拉选择)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 设备台账id
|
||||
*/
|
||||
private Long equipmentId;
|
||||
|
||||
/**
|
||||
* 发生时间
|
||||
*/
|
||||
@NotNull(message = "发生时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDateTime occurrenceTime;
|
||||
|
||||
/**
|
||||
* 发生地点
|
||||
*/
|
||||
@NotBlank(message = "发生地点不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String occurrencePlace;
|
||||
|
||||
/**
|
||||
* 事故描述(详细经过)
|
||||
*/
|
||||
@NotBlank(message = "事故描述(详细经过)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String accidentDescription;
|
||||
|
||||
/**
|
||||
* 直接损失金额(元)
|
||||
*/
|
||||
@NotNull(message = "直接损失金额(元)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal directLoss;
|
||||
|
||||
/**
|
||||
* 间接损失金额(元)
|
||||
*/
|
||||
private BigDecimal indirectLoss;
|
||||
|
||||
/**
|
||||
* 事故原因分析
|
||||
*/
|
||||
@NotBlank(message = "事故原因分析不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String accidentCause;
|
||||
|
||||
/**
|
||||
* 人员伤亡情况(如有)
|
||||
*/
|
||||
private String casualtySituation;
|
||||
|
||||
/**
|
||||
* 应急处理措施
|
||||
*/
|
||||
@NotBlank(message = "应急处理措施不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String emergencyMeasures;
|
||||
|
||||
/**
|
||||
* 整改预防措施
|
||||
*/
|
||||
@NotBlank(message = "整改预防措施不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String rectificationMeasures;
|
||||
|
||||
/**
|
||||
* 责任人
|
||||
*/
|
||||
private Long responsiblePerson;
|
||||
|
||||
/**
|
||||
* 处理结果
|
||||
*/
|
||||
private String handleResult;
|
||||
|
||||
/**
|
||||
* 记录人
|
||||
*/
|
||||
@NotNull(message = "记录人不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long recorder;
|
||||
|
||||
/**
|
||||
* 记录日期
|
||||
*/
|
||||
@NotNull(message = "记录日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 照片文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package org.dromara.mechanical.jxsgjl.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class JxSgxxHead {
|
||||
/**
|
||||
* 总数
|
||||
*/
|
||||
private Long zs = 0L;
|
||||
/**
|
||||
* 一般事故
|
||||
*/
|
||||
private Long ybsg = 0L;
|
||||
/**
|
||||
* 重大事故
|
||||
*/
|
||||
private Long zdsg = 0L;
|
||||
/**
|
||||
* 严重事故
|
||||
*/
|
||||
private Long yzsg = 0L;
|
||||
|
||||
}
|
||||
@ -0,0 +1,169 @@
|
||||
package org.dromara.mechanical.jxsgjl.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 机械事故信息记录视图对象 jx_sgxxjlb
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-04
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = JxSgxxjlb.class)
|
||||
public class JxSgxxjlbVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 事故编号(如SGJL-20230620-001)
|
||||
*/
|
||||
@ExcelProperty(value = "事故编号")
|
||||
private String accidentCode;
|
||||
|
||||
/**
|
||||
* 事故等级(下拉选择)
|
||||
*/
|
||||
@ExcelProperty(value = "事故等级")
|
||||
private String accidentLevel;
|
||||
|
||||
/**
|
||||
* 事故类型(下拉选择)
|
||||
*/
|
||||
@ExcelProperty(value = "事故类型")
|
||||
private String accidentType;
|
||||
|
||||
/**
|
||||
* 设备名称(下拉选择)
|
||||
*/
|
||||
@ExcelProperty(value = "设备名称")
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 设备台账id
|
||||
*/
|
||||
@ExcelProperty(value = "设备台账id")
|
||||
private Long equipmentId;
|
||||
|
||||
/**
|
||||
* 发生时间
|
||||
*/
|
||||
@ExcelProperty(value = "发生时间")
|
||||
private LocalDateTime occurrenceTime;
|
||||
|
||||
/**
|
||||
* 发生地点
|
||||
*/
|
||||
@ExcelProperty(value = "发生地点")
|
||||
private String occurrencePlace;
|
||||
|
||||
/**
|
||||
* 事故描述(详细经过)
|
||||
*/
|
||||
@ExcelProperty(value = "事故描述")
|
||||
private String accidentDescription;
|
||||
|
||||
/**
|
||||
* 直接损失金额(元)
|
||||
*/
|
||||
@ExcelProperty(value = "直接损失金额")
|
||||
private BigDecimal directLoss;
|
||||
|
||||
/**
|
||||
* 间接损失金额(元)
|
||||
*/
|
||||
@ExcelProperty(value = "间接损失金额")
|
||||
private BigDecimal indirectLoss;
|
||||
|
||||
/**
|
||||
* 事故原因分析
|
||||
*/
|
||||
@ExcelProperty(value = "事故原因分析")
|
||||
private String accidentCause;
|
||||
|
||||
/**
|
||||
* 人员伤亡情况(如有)
|
||||
*/
|
||||
@ExcelProperty(value = "人员伤亡情况")
|
||||
private String casualtySituation;
|
||||
|
||||
/**
|
||||
* 应急处理措施
|
||||
*/
|
||||
@ExcelProperty(value = "应急处理措施")
|
||||
private String emergencyMeasures;
|
||||
|
||||
/**
|
||||
* 整改预防措施
|
||||
*/
|
||||
@ExcelProperty(value = "整改预防措施")
|
||||
private String rectificationMeasures;
|
||||
|
||||
/**
|
||||
* 责任人
|
||||
*/
|
||||
@ExcelProperty(value = "责任人")
|
||||
private Long responsiblePerson;
|
||||
|
||||
/**
|
||||
* 处理结果
|
||||
*/
|
||||
@ExcelProperty(value = "处理结果")
|
||||
private String handleResult;
|
||||
|
||||
/**
|
||||
* 记录人
|
||||
*/
|
||||
@ExcelProperty(value = "记录人")
|
||||
private Long recorder;
|
||||
|
||||
/**
|
||||
* 记录日期
|
||||
*/
|
||||
@ExcelProperty(value = "记录日期")
|
||||
private LocalDate recordDate;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 照片文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "照片文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "pdf文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String pdfId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.mechanical.jxsgjl.mapper;
|
||||
|
||||
import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 机械事故信息记录Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-04
|
||||
*/
|
||||
public interface JxSgxxjlbMapper extends BaseMapperPlus<JxSgxxjlb, JxSgxxjlbVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
package org.dromara.mechanical.jxsgjl.service;
|
||||
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxHead;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo;
|
||||
import org.dromara.mechanical.jxsgjl.domain.bo.JxSgxxjlbBo;
|
||||
import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 机械事故信息记录Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-04
|
||||
*/
|
||||
public interface IJxSgxxjlbService extends IService<JxSgxxjlb>{
|
||||
|
||||
/**
|
||||
* 查询机械事故信息记录
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 机械事故信息记录
|
||||
*/
|
||||
JxSgxxjlbVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询机械事故信息记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 机械事故信息记录分页列表
|
||||
*/
|
||||
TableDataInfo<JxSgxxjlbVo> queryPageList(JxSgxxjlbBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的机械事故信息记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 机械事故信息记录列表
|
||||
*/
|
||||
List<JxSgxxjlbVo> queryList(JxSgxxjlbBo bo);
|
||||
|
||||
/**
|
||||
* 新增机械事故信息记录
|
||||
*
|
||||
* @param bo 机械事故信息记录
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(JxSgxxjlbBo bo);
|
||||
|
||||
/**
|
||||
* 修改机械事故信息记录
|
||||
*
|
||||
* @param bo 机械事故信息记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(JxSgxxjlbBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除机械事故信息记录信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
JxSgxxHead getHeadData();
|
||||
}
|
||||
@ -0,0 +1,192 @@
|
||||
package org.dromara.mechanical.jxsgjl.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcgl;
|
||||
import org.dromara.mechanical.jxgl.domain.vo.JxGzwxJlVo;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxHead;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.mechanical.jxsgjl.domain.bo.JxSgxxjlbBo;
|
||||
import org.dromara.mechanical.jxsgjl.domain.vo.JxSgxxjlbVo;
|
||||
import org.dromara.mechanical.jxsgjl.domain.JxSgxxjlb;
|
||||
import org.dromara.mechanical.jxsgjl.mapper.JxSgxxjlbMapper;
|
||||
import org.dromara.mechanical.jxsgjl.service.IJxSgxxjlbService;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 机械事故信息记录Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-04
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class JxSgxxjlbServiceImpl extends ServiceImpl<JxSgxxjlbMapper, JxSgxxjlb> implements IJxSgxxjlbService {
|
||||
|
||||
private final JxSgxxjlbMapper baseMapper;
|
||||
|
||||
private final ISysOssService sysOssService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询机械事故信息记录
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 机械事故信息记录
|
||||
*/
|
||||
@Override
|
||||
public JxSgxxjlbVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询机械事故信息记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 机械事故信息记录分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<JxSgxxjlbVo> queryPageList(JxSgxxjlbBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<JxSgxxjlb> lqw = buildQueryWrapper(bo);
|
||||
Page<JxSgxxjlbVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的机械事故信息记录列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 机械事故信息记录列表
|
||||
*/
|
||||
@Override
|
||||
public List<JxSgxxjlbVo> queryList(JxSgxxjlbBo bo) {
|
||||
LambdaQueryWrapper<JxSgxxjlb> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<JxSgxxjlb> buildQueryWrapper(JxSgxxjlbBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<JxSgxxjlb> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(JxSgxxjlb::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAccidentCode()), JxSgxxjlb::getAccidentCode, bo.getAccidentCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAccidentLevel()), JxSgxxjlb::getAccidentLevel, bo.getAccidentLevel());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAccidentType()), JxSgxxjlb::getAccidentType, bo.getAccidentType());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), JxSgxxjlb::getEquipmentName, bo.getEquipmentName());
|
||||
lqw.eq(bo.getOccurrenceTime() != null, JxSgxxjlb::getOccurrenceTime, bo.getOccurrenceTime());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOccurrencePlace()), JxSgxxjlb::getOccurrencePlace, bo.getOccurrencePlace());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAccidentDescription()), JxSgxxjlb::getAccidentDescription, bo.getAccidentDescription());
|
||||
lqw.eq(bo.getDirectLoss() != null, JxSgxxjlb::getDirectLoss, bo.getDirectLoss());
|
||||
lqw.eq(bo.getIndirectLoss() != null, JxSgxxjlb::getIndirectLoss, bo.getIndirectLoss());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAccidentCause()), JxSgxxjlb::getAccidentCause, bo.getAccidentCause());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCasualtySituation()), JxSgxxjlb::getCasualtySituation, bo.getCasualtySituation());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEmergencyMeasures()), JxSgxxjlb::getEmergencyMeasures, bo.getEmergencyMeasures());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getRectificationMeasures()), JxSgxxjlb::getRectificationMeasures, bo.getRectificationMeasures());
|
||||
lqw.eq(bo.getResponsiblePerson() != null, JxSgxxjlb::getResponsiblePerson, bo.getResponsiblePerson());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getHandleResult()), JxSgxxjlb::getHandleResult, bo.getHandleResult());
|
||||
lqw.eq(bo.getRecorder() != null, JxSgxxjlb::getRecorder, bo.getRecorder());
|
||||
lqw.eq(bo.getRecordDate() != null, JxSgxxjlb::getRecordDate, bo.getRecordDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), JxSgxxjlb::getAuditStatus, bo.getAuditStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), JxSgxxjlb::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPdfId()), JxSgxxjlb::getPdfId, bo.getPdfId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增机械事故信息记录
|
||||
*
|
||||
* @param bo 机械事故信息记录
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(JxSgxxjlbBo bo) {
|
||||
JxSgxxjlb add = MapstructUtils.convert(bo, JxSgxxjlb.class);
|
||||
validEntityBeforeSave(add);
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("JXAQSGJL-");
|
||||
add.setAccidentCode(banBen);
|
||||
|
||||
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机械事故信息记录
|
||||
*
|
||||
* @param bo 机械事故信息记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(JxSgxxjlbBo bo) {
|
||||
JxSgxxjlb update = MapstructUtils.convert(bo, JxSgxxjlb.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(JxSgxxjlb entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除机械事故信息记录信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
|
||||
List<Long> deleteIds = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
JxSgxxjlbVo vo = baseMapper.selectVoById(id);
|
||||
if (vo != null){
|
||||
//删除附件
|
||||
if (vo.getFileId()!= null && !vo.getFileId().isEmpty()){
|
||||
List<Long> list = Arrays.stream(vo.getFileId().split(",")).map(Long::valueOf).toList();
|
||||
deleteIds.addAll(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!deleteIds.isEmpty()) {
|
||||
sysOssService.deleteWithValidByIds(deleteIds, false);
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JxSgxxHead getHeadData() {
|
||||
JxSgxxHead jxSgxxHead = new JxSgxxHead();
|
||||
List<JxSgxxjlb> jxSgxxjlbs = this.getBaseMapper().selectList(new LambdaQueryWrapper<JxSgxxjlb>().le(JxSgxxjlb::getCreateTime, LocalDate.now().plusDays(1)).ge(JxSgxxjlb::getCreateTime, LocalDate.now().minusDays(29)));
|
||||
if (jxSgxxjlbs != null && jxSgxxjlbs.size() > 0) {
|
||||
long ybsg = jxSgxxjlbs.stream().filter(jxSgxxjlb -> jxSgxxjlb.getAccidentLevel().equals("1")).count();
|
||||
long yzsg = jxSgxxjlbs.stream().filter(jxSgxxjlb -> jxSgxxjlb.getAccidentLevel().equals("2")).count();
|
||||
long zdsg = jxSgxxjlbs.stream().filter(jxSgxxjlb -> jxSgxxjlb.getAccidentLevel().equals("3")).count();
|
||||
jxSgxxHead.setZs(Long.valueOf(jxSgxxjlbs.size()));
|
||||
jxSgxxHead.setYbsg(ybsg);
|
||||
jxSgxxHead.setYzsg(yzsg);
|
||||
jxSgxxHead.setZdsg(zdsg);
|
||||
}
|
||||
return jxSgxxHead;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,153 @@
|
||||
package org.dromara.mechanical.jxzgbh.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxFcxx;
|
||||
import org.dromara.mechanical.jxzgbh.domain.bo.JxFcxxBo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.bo.JxZgxxBo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxHeadVo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.vo.JxZgxxOrFcxxVo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mechanical.jxzgbh.domain.vo.JxYhzgbhVo;
|
||||
import org.dromara.mechanical.jxzgbh.domain.bo.JxYhzgbhBo;
|
||||
import org.dromara.mechanical.jxzgbh.service.IJxYhzgbhService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 机械隐患整改与闭环
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/jxzgbh/yhzgbh")
|
||||
public class JxYhzgbhController extends BaseController {
|
||||
|
||||
private final IJxYhzgbhService jxYhzgbhService;
|
||||
|
||||
|
||||
/**
|
||||
* 头部数据返回
|
||||
*/
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:list")
|
||||
@GetMapping("/getListHead")
|
||||
public R<JxZgxxHeadVo> getListHead(JxYhzgbhBo bo, PageQuery pageQuery) {
|
||||
return R.ok(jxYhzgbhService.getListHead(bo, pageQuery));
|
||||
}
|
||||
|
||||
/**
|
||||
* 整改接口
|
||||
*/
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:edit")
|
||||
@PutMapping("/zgPutBo")
|
||||
public R<Void> zgPutBo(@RequestBody JxZgxxBo bo) {
|
||||
return toAjax(jxYhzgbhService.zgPutBo(bo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 复查,整改接口详情查询 1整改 2 复查
|
||||
*/
|
||||
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:edit")
|
||||
@GetMapping("/zgxxorfcxx/{type}/{id}")
|
||||
public R<JxZgxxOrFcxxVo> zgxxorfcxx(@PathVariable String type, @PathVariable Long id) {
|
||||
return R.ok(jxYhzgbhService.zgxxorfcxx(type,id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*复查
|
||||
*/
|
||||
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:edit")
|
||||
@PutMapping("/fcPutBo")
|
||||
public R<Void> fcPutBo(@RequestBody JxFcxxBo bo) {
|
||||
return toAjax(jxYhzgbhService.fcPutBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询机械隐患整改与闭环列表
|
||||
*/
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<JxYhzgbhVo> list(JxYhzgbhBo bo, PageQuery pageQuery) {
|
||||
return jxYhzgbhService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出机械隐患整改与闭环列表
|
||||
*/
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:export")
|
||||
@Log(title = "机械隐患整改与闭环", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(JxYhzgbhBo bo, HttpServletResponse response) {
|
||||
List<JxYhzgbhVo> list = jxYhzgbhService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "机械隐患整改与闭环", JxYhzgbhVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取机械隐患整改与闭环详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<JxYhzgbhVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(jxYhzgbhService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增机械隐患整改与闭环
|
||||
*/
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:add")
|
||||
@Log(title = "机械隐患整改与闭环", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody JxYhzgbhBo bo) {
|
||||
return toAjax(jxYhzgbhService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机械隐患整改与闭环
|
||||
*/
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:edit")
|
||||
@Log(title = "机械隐患整改与闭环", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody JxYhzgbhBo bo) {
|
||||
return toAjax(jxYhzgbhService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除机械隐患整改与闭环
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("jxzgbh:yhzgbh:remove")
|
||||
@Log(title = "机械隐患整改与闭环", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(jxYhzgbhService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,79 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 机械隐患复查信息对象 jx_fcxx
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("jx_fcxx")
|
||||
public class JxFcxx extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 机械隐患ID
|
||||
*/
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 复查人
|
||||
*/
|
||||
private Long review;
|
||||
|
||||
/**
|
||||
* 复查日期
|
||||
*/
|
||||
private LocalDate reviewDate;
|
||||
|
||||
/**
|
||||
* 复查状态
|
||||
*/
|
||||
private String reviewOpinion;
|
||||
|
||||
/**
|
||||
* 最终闭环状态
|
||||
*/
|
||||
private String reviewState;
|
||||
|
||||
/**
|
||||
* 不通过原因
|
||||
*/
|
||||
private String notPassCause;
|
||||
|
||||
/**
|
||||
* 复查意见详情
|
||||
*/
|
||||
private String reviewOpinionParticulars;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
private Integer sort;
|
||||
|
||||
}
|
||||
@ -0,0 +1,110 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 机械隐患整改与闭环对象 jx_yhzgbh
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("jx_yhzgbh")
|
||||
public class JxYhzgbh extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 隐患编号
|
||||
*/
|
||||
private String inspectionOrderNo;
|
||||
|
||||
/**
|
||||
* 检查单编号
|
||||
*/
|
||||
private String inspectionJcdNo;
|
||||
|
||||
/**
|
||||
* 检查人
|
||||
*/
|
||||
private Long inspector;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 最终闭环状态
|
||||
*/
|
||||
private String reviewState;
|
||||
|
||||
/**
|
||||
* 整改状态
|
||||
*/
|
||||
private String abarbeitungState;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录表ID
|
||||
*/
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 隐患等级
|
||||
*/
|
||||
private String riskGrade;
|
||||
|
||||
/**
|
||||
* 隐患来源
|
||||
*/
|
||||
private String yhly;
|
||||
|
||||
/**
|
||||
* 对应设备
|
||||
*/
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 发现时间
|
||||
*/
|
||||
private LocalDate discoverDate;
|
||||
|
||||
/**
|
||||
* 发现人
|
||||
*/
|
||||
private Long discoverId;
|
||||
|
||||
/**
|
||||
* 整改人
|
||||
*/
|
||||
private Long abarbeitung;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 复查状态
|
||||
*/
|
||||
private String reviewOpinion;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,82 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 机械隐患整改信息对象 jx_zgxx
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("jx_zgxx")
|
||||
public class JxZgxx extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 机械隐患ID
|
||||
*/
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 整改责任人
|
||||
*/
|
||||
private Long abarbeitung;
|
||||
|
||||
/**
|
||||
* 整改开始日期
|
||||
*/
|
||||
private LocalDate abarbeitungKsdate;
|
||||
|
||||
/**
|
||||
* 整改结束日期
|
||||
*/
|
||||
private LocalDate abarbeitungJsdate;
|
||||
|
||||
// /**
|
||||
// * 整改期限
|
||||
// */
|
||||
// private LocalDate abarbeitungDeadline;
|
||||
|
||||
/**
|
||||
* 整改措施
|
||||
*/
|
||||
private String abarbeitungMeasure;
|
||||
|
||||
/**
|
||||
* 整改完成情况
|
||||
*/
|
||||
private String abarbeitungAccomplish;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
private Integer sort;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain.bo;
|
||||
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxFcxx;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 机械隐患复查信息业务对象 jx_fcxx
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = JxFcxx.class, reverseConvertGenerate = false)
|
||||
public class JxFcxxBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 机械隐患ID
|
||||
*/
|
||||
@NotNull(message = "机械隐患ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 复查人
|
||||
*/
|
||||
@NotNull(message = "复查人不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long review;
|
||||
|
||||
/**
|
||||
* 复查日期
|
||||
*/
|
||||
@NotNull(message = "复查日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate reviewDate;
|
||||
|
||||
/**
|
||||
* 复查意见
|
||||
*/
|
||||
@NotBlank(message = "复查状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String reviewOpinion;
|
||||
|
||||
/**
|
||||
* 最终闭环状态
|
||||
*/
|
||||
@NotBlank(message = "最终闭环状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String reviewState;
|
||||
|
||||
/**
|
||||
* 不通过原因
|
||||
*/
|
||||
private String notPassCause;
|
||||
|
||||
/**
|
||||
* 复查意见详情
|
||||
*/
|
||||
@NotBlank(message = "复查意见详情不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String reviewOpinionParticulars;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
private Integer sort;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,113 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain.bo;
|
||||
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 机械隐患整改与闭环业务对象 jx_yhzgbh
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = JxYhzgbh.class, reverseConvertGenerate = false)
|
||||
public class JxYhzgbhBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 隐患编号
|
||||
*/
|
||||
private String inspectionOrderNo;
|
||||
|
||||
/**
|
||||
* 检查单编号
|
||||
*/
|
||||
private String inspectionJcdNo;
|
||||
|
||||
/**
|
||||
* 检查人
|
||||
*/
|
||||
private Long inspector;
|
||||
|
||||
/**
|
||||
* 复查状态
|
||||
*/
|
||||
private String reviewOpinion;
|
||||
|
||||
/**
|
||||
* 整改人
|
||||
*/
|
||||
private Long abarbeitung;
|
||||
|
||||
/**
|
||||
* 机械安全检查记录表ID
|
||||
*/
|
||||
@NotNull(message = "机械安全检查记录表ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 隐患等级
|
||||
*/
|
||||
@NotBlank(message = "隐患等级不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String riskGrade;
|
||||
|
||||
/**
|
||||
* 最终闭环状态
|
||||
*/
|
||||
private String reviewState;
|
||||
|
||||
/**
|
||||
* 整改状态
|
||||
*/
|
||||
private String abarbeitungState;
|
||||
|
||||
/**
|
||||
* 隐患来源
|
||||
*/
|
||||
@NotBlank(message = "隐患来源不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String yhly;
|
||||
|
||||
/**
|
||||
* 对应设备
|
||||
*/
|
||||
@NotBlank(message = "对应设备不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 发现时间
|
||||
*/
|
||||
@NotNull(message = "发现时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate discoverDate;
|
||||
|
||||
/**
|
||||
* 发现人
|
||||
*/
|
||||
@NotNull(message = "发现人不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long discoverId;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,86 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain.bo;
|
||||
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxZgxx;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* 机械隐患整改信息业务对象 jx_zgxx
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = JxZgxx.class, reverseConvertGenerate = false)
|
||||
public class JxZgxxBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 机械隐患ID
|
||||
*/
|
||||
@NotNull(message = "机械隐患ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 整改责任人
|
||||
*/
|
||||
@NotNull(message = "整改责任人不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long abarbeitung;
|
||||
|
||||
/**
|
||||
* 整改开始日期
|
||||
*/
|
||||
@NotNull(message = "整改开始日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate abarbeitungKsdate;
|
||||
|
||||
/**
|
||||
* 整改结束日期
|
||||
*/
|
||||
@NotNull(message = "整改结束日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private LocalDate abarbeitungJsdate;
|
||||
|
||||
// /**
|
||||
// * 整改期限
|
||||
// */
|
||||
// @NotNull(message = "整改期限不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// private LocalDate abarbeitungDeadline;
|
||||
|
||||
/**
|
||||
* 整改措施
|
||||
*/
|
||||
@NotBlank(message = "整改措施不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String abarbeitungMeasure;
|
||||
|
||||
/**
|
||||
* 整改完成情况
|
||||
*/
|
||||
@NotBlank(message = "整改完成情况不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String abarbeitungAccomplish;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
private String pdfId;
|
||||
|
||||
private Integer sort;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,119 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxFcxx;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 机械隐患复查信息视图对象 jx_fcxx
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = JxFcxx.class)
|
||||
public class JxFcxxVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 机械隐患ID
|
||||
*/
|
||||
@ExcelProperty(value = "机械隐患ID")
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 复查人
|
||||
*/
|
||||
@ExcelProperty(value = "复查人")
|
||||
private Long review;
|
||||
|
||||
/**
|
||||
* 复查人
|
||||
*/
|
||||
@ExcelProperty(value = "复查人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "review")
|
||||
private String reviewName;
|
||||
|
||||
/**
|
||||
* 复查日期
|
||||
*/
|
||||
@ExcelProperty(value = "复查日期")
|
||||
private LocalDate reviewDate;
|
||||
|
||||
/**
|
||||
* 复查意见
|
||||
*/
|
||||
@ExcelProperty(value = "复查意见")
|
||||
private String reviewOpinion;
|
||||
|
||||
/**
|
||||
* 最终闭环状态
|
||||
*/
|
||||
@ExcelProperty(value = "最终闭环状态")
|
||||
private String reviewState;
|
||||
|
||||
/**
|
||||
* 不通过原因
|
||||
*/
|
||||
@ExcelProperty(value = "不通过原因")
|
||||
private String notPassCause;
|
||||
|
||||
/**
|
||||
* 复查意见详情
|
||||
*/
|
||||
@ExcelProperty(value = "复查意见详情")
|
||||
private String reviewOpinionParticulars;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "pdf文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String pdfId;
|
||||
|
||||
private Integer sort;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,168 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain.vo;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxFcxx;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxYhzgbh;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxZgxx;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 机械隐患整改与闭环视图对象 jx_yhzgbh
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = JxYhzgbh.class)
|
||||
public class JxYhzgbhVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 隐患编号
|
||||
*/
|
||||
@ExcelProperty(value = "隐患编号")
|
||||
private String inspectionOrderNo;
|
||||
/**
|
||||
* 检查单编号
|
||||
*/
|
||||
@ExcelProperty(value = "检查单编号")
|
||||
private String inspectionJcdNo;
|
||||
|
||||
/**
|
||||
* 检查人
|
||||
*/
|
||||
@ExcelProperty(value = "检查人")
|
||||
private Long inspector;
|
||||
|
||||
/**
|
||||
* 复查状态
|
||||
*/
|
||||
private String reviewOpinion;
|
||||
|
||||
/**
|
||||
* 检查人
|
||||
*/
|
||||
@ExcelProperty(value = "检查人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "inspector")
|
||||
private String inspectorName;
|
||||
|
||||
|
||||
/**
|
||||
* 机械安全检查记录表ID
|
||||
*/
|
||||
@ExcelProperty(value = "机械安全检查记录表ID")
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 隐患等级
|
||||
*/
|
||||
@ExcelProperty(value = "隐患等级")
|
||||
private String riskGrade;
|
||||
|
||||
/**
|
||||
* 隐患来源
|
||||
*/
|
||||
@ExcelProperty(value = "隐患来源")
|
||||
private String yhly;
|
||||
|
||||
/**
|
||||
* 对应设备
|
||||
*/
|
||||
@ExcelProperty(value = "对应设备")
|
||||
private String equipmentName;
|
||||
|
||||
/**
|
||||
* 最终闭环状态
|
||||
*/
|
||||
private String reviewState;
|
||||
|
||||
/**
|
||||
* 整改状态
|
||||
*/
|
||||
private String abarbeitungState;
|
||||
|
||||
/**
|
||||
* 发现时间
|
||||
*/
|
||||
@ExcelProperty(value = "发现时间")
|
||||
private LocalDate discoverDate;
|
||||
|
||||
/**
|
||||
* 发现人
|
||||
*/
|
||||
@ExcelProperty(value = "发现人")
|
||||
private Long discoverId;
|
||||
|
||||
/**
|
||||
* 发现人
|
||||
*/
|
||||
@ExcelProperty(value = "发现人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "discoverId")
|
||||
private String discoverName;
|
||||
|
||||
/**
|
||||
* 整改人
|
||||
*/
|
||||
private Long abarbeitung;
|
||||
|
||||
|
||||
/**
|
||||
* 整改人
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "discoverId")
|
||||
private String abarbeitungName;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
|
||||
/**
|
||||
* 整改信息
|
||||
*/
|
||||
private List<JxZgxxVo> zgxxList;
|
||||
/**
|
||||
* 复查信息
|
||||
*/
|
||||
private List<JxFcxxVo> fcxxList;
|
||||
|
||||
|
||||
/**
|
||||
* 问题详情
|
||||
*/
|
||||
private List<JxAqjcglWtxq> wtxqList;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class JxZgxxHeadVo {
|
||||
/**
|
||||
* 总数
|
||||
*/
|
||||
private Long zs = 0L;
|
||||
|
||||
/**
|
||||
* 已整改
|
||||
*/
|
||||
private Long yzg = 0L;
|
||||
|
||||
/**
|
||||
* 未整改
|
||||
*/
|
||||
private Long wzg = 0L;
|
||||
|
||||
|
||||
/**
|
||||
* 已闭环
|
||||
*/
|
||||
private Long ybh = 0L;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import org.dromara.mechanical.jxaqgl.domain.JxAqjcglWtxq;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxFcxx;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxZgxx;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class JxZgxxOrFcxxVo {
|
||||
|
||||
/**
|
||||
* 隐患整改与闭环
|
||||
*/
|
||||
private JxYhzgbhVo yhzgbhVo;
|
||||
|
||||
|
||||
/**
|
||||
* 复查数据
|
||||
*/
|
||||
private JxFcxx fcxxVo;
|
||||
|
||||
/**
|
||||
* 整改数据
|
||||
*/
|
||||
private JxZgxx zgxxVo;
|
||||
|
||||
|
||||
/**
|
||||
* 问题详情
|
||||
*/
|
||||
private List<JxAqjcglWtxq> wtxqList;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,108 @@
|
||||
package org.dromara.mechanical.jxzgbh.domain.vo;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxZgxx;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 机械隐患整改信息视图对象 jx_zgxx
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = JxZgxx.class)
|
||||
public class JxZgxxVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 机械隐患ID
|
||||
*/
|
||||
@ExcelProperty(value = "机械隐患ID")
|
||||
private Long masterId;
|
||||
|
||||
/**
|
||||
* 整改责任人
|
||||
*/
|
||||
@ExcelProperty(value = "整改责任人")
|
||||
private Long abarbeitung;
|
||||
|
||||
|
||||
/**
|
||||
* 整改责任人
|
||||
*/
|
||||
@ExcelProperty(value = "整改责任人")
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "abarbeitung")
|
||||
private String abarbeitungName;
|
||||
|
||||
/**
|
||||
* 整改开始日期
|
||||
*/
|
||||
@ExcelProperty(value = "整改开始日期")
|
||||
private LocalDate abarbeitungKsdate;
|
||||
|
||||
/**
|
||||
* 整改结束日期
|
||||
*/
|
||||
@ExcelProperty(value = "整改结束日期")
|
||||
private LocalDate abarbeitungJsdate;
|
||||
|
||||
// /**
|
||||
// * 整改期限
|
||||
// */
|
||||
// @ExcelProperty(value = "整改期限")
|
||||
// private LocalDate abarbeitungDeadline;
|
||||
|
||||
/**
|
||||
* 整改措施
|
||||
*/
|
||||
@ExcelProperty(value = "整改措施")
|
||||
private String abarbeitungMeasure;
|
||||
|
||||
/**
|
||||
* 整改完成情况
|
||||
*/
|
||||
@ExcelProperty(value = "整改完成情况")
|
||||
private String abarbeitungAccomplish;
|
||||
|
||||
/**
|
||||
* 文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String fileId;
|
||||
|
||||
|
||||
/**
|
||||
* pdf文件id (多个文件逗号分隔)
|
||||
*/
|
||||
@ExcelProperty(value = "pdf文件id ", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "多=个文件逗号分隔")
|
||||
private String pdfId;
|
||||
|
||||
private Integer sort;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.mechanical.jxzgbh.mapper;
|
||||
|
||||
import org.dromara.mechanical.jxzgbh.domain.JxFcxx;
|
||||
import org.dromara.mechanical.jxzgbh.domain.vo.JxFcxxVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 机械隐患复查信息Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface JxFcxxMapper extends BaseMapperPlus<JxFcxx, JxFcxxVo> {
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user