意见箱修改

This commit is contained in:
2025-12-05 16:45:22 +08:00
parent 46299e5732
commit 7e1db73fb0
8 changed files with 103 additions and 35 deletions

View File

@ -3,10 +3,14 @@ package org.dromara.complaintBox.controller;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; 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.bo.BusComplaintBoxMessageLoggingBo;
import org.dromara.complaintBox.domain.vo.BusComplaintBoxDisposeLoggingVo;
import org.dromara.complaintBox.domain.vo.ComplaintBoxCountVo; import org.dromara.complaintBox.domain.vo.ComplaintBoxCountVo;
import org.dromara.complaintBox.domain.vo.DetailsOfTheOpinionVo; import org.dromara.complaintBox.domain.vo.DetailsOfTheOpinionVo;
import org.dromara.complaintBox.service.IBusComplaintBoxDisposeLoggingService;
import org.dromara.complaintBox.service.IBusComplaintBoxMessageLoggingService; import org.dromara.complaintBox.service.IBusComplaintBoxMessageLoggingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -37,10 +41,13 @@ import java.util.List;
@RequestMapping("/complaintBox/complaintBox") @RequestMapping("/complaintBox/complaintBox")
public class BusComplaintBoxController extends BaseController { public class BusComplaintBoxController extends BaseController {
@Lazy
private final IBusComplaintBoxService busComplaintBoxService; private final IBusComplaintBoxService busComplaintBoxService;
@Lazy @Lazy
private final IBusComplaintBoxMessageLoggingService busComplaintBoxMessageLoggingService; @Autowired
private IBusComplaintBoxMessageLoggingService busComplaintBoxMessageLoggingService;
@Lazy
@Autowired
private IBusComplaintBoxDisposeLoggingService disposeLoggingService;
/** /**
@ -51,6 +58,14 @@ public class BusComplaintBoxController extends BaseController {
public TableDataInfo<BusComplaintBoxVo> list(BusComplaintBoxBo bo, PageQuery pageQuery) { public TableDataInfo<BusComplaintBoxVo> list(BusComplaintBoxBo bo, PageQuery pageQuery) {
return busComplaintBoxService.queryPageList(bo, 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获取各个处理状态数量 * web获取各个处理状态数量
*/ */

View File

@ -78,7 +78,7 @@ public class BusComplaintBox extends BaseEntity {
private String isCryptonym; private String isCryptonym;
/** /**
* 处理状态0、待处理5、处理中9、已解决10、退回14、关闭 * 处理状态0、待处理5、处理中9、已解决10、退回14、不予解决()
*/ */
private String status; private String status;

View File

@ -86,5 +86,10 @@ public class BusComplaintBoxBo extends BaseEntity {
*/ */
private String status; private String status;
/**
* 退回原因
*/
private String cause;
} }

View File

@ -1,5 +1,7 @@
package org.dromara.complaintBox.domain.vo; 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 org.dromara.complaintBox.domain.BusComplaintBoxDisposeLogging;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
@ -71,5 +73,10 @@ public class BusComplaintBoxDisposeLoggingVo implements Serializable {
@ExcelProperty(value = "退回原因") @ExcelProperty(value = "退回原因")
private String cause; private String cause;
/**
* 创建时间
*/
private Date createTime;
} }

View File

@ -72,13 +72,11 @@ public class BusComplaintBoxDisposeLoggingServiceImpl extends ServiceImpl<BusCom
private LambdaQueryWrapper<BusComplaintBoxDisposeLogging> buildQueryWrapper(BusComplaintBoxDisposeLoggingBo bo) { private LambdaQueryWrapper<BusComplaintBoxDisposeLogging> buildQueryWrapper(BusComplaintBoxDisposeLoggingBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BusComplaintBoxDisposeLogging> lqw = Wrappers.lambdaQuery(); 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.getComplaintId() != null, BusComplaintBoxDisposeLogging::getComplaintId, bo.getComplaintId());
lqw.eq(bo.getUserId() != null, BusComplaintBoxDisposeLogging::getUserId, bo.getUserId()); lqw.eq(bo.getUserId() != null, BusComplaintBoxDisposeLogging::getUserId, bo.getUserId());
lqw.like(StringUtils.isNotBlank(bo.getUserName()), BusComplaintBoxDisposeLogging::getUserName, bo.getUserName()); 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.getIsRefund()), BusComplaintBoxDisposeLogging::getIsRefund, bo.getIsRefund());
lqw.eq(StringUtils.isNotBlank(bo.getCause()), BusComplaintBoxDisposeLogging::getCause, bo.getCause());
return lqw; return lqw;
} }

View File

@ -109,7 +109,7 @@ public class BusComplaintBoxMessageLoggingServiceImpl extends ServiceImpl<BusCom
if (busComplaintBox == null) { if (busComplaintBox == null) {
throw new ServiceException("意见信息找不到!!!"); throw new ServiceException("意见信息找不到!!!");
} }
if ("14".equals(busComplaintBox.getStatus())){ if ("14".equals(busComplaintBox.getStatus()) || "9".equals(busComplaintBox.getStatus())) {
throw new ServiceException("意见已关闭!!!"); throw new ServiceException("意见已关闭!!!");
} }
SysUserVo sysUserVo = sysUserService.selectUserById(loginUser.getUserId()); SysUserVo sysUserVo = sysUserService.selectUserById(loginUser.getUserId());
@ -145,7 +145,13 @@ public class BusComplaintBoxMessageLoggingServiceImpl extends ServiceImpl<BusCom
if (busComplaintBox == null) { if (busComplaintBox == null) {
throw new ServiceException("意见信息找不到!!!"); 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("意见已关闭!!!"); throw new ServiceException("意见已关闭!!!");
} }
SysUserVo sysUserVo = sysUserService.selectUserById(loginUser.getUserId()); SysUserVo sysUserVo = sysUserService.selectUserById(loginUser.getUserId());
@ -159,11 +165,11 @@ public class BusComplaintBoxMessageLoggingServiceImpl extends ServiceImpl<BusCom
validEntityBeforeSave(add); validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if ("0".equals(busComplaintBox.getStatus())){ // if ("0".equals(busComplaintBox.getStatus())){
busComplaintBox.setStatus("5"); // busComplaintBox.setStatus("5");
busComplaintBox.setCurrentDisposeUserId(sysUserVo.getUserId()); // busComplaintBox.setCurrentDisposeUserId(sysUserVo.getUserId());
busComplaintBoxMapper.updateById(busComplaintBox); // busComplaintBoxMapper.updateById(busComplaintBox);
} // }
if (flag) { if (flag) {
bo.setId(add.getId()); bo.setId(add.getId());
} }

View File

@ -3,6 +3,8 @@ package org.dromara.complaintBox.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; 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.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.complaintBox.app.domain.vo.AppDetailsOfTheOpinionVo; 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.BusComplaintBoxMessageLogging;
import org.dromara.complaintBox.domain.vo.BusComplaintBoxMessageLoggingVo; import org.dromara.complaintBox.domain.vo.BusComplaintBoxMessageLoggingVo;
import org.dromara.complaintBox.domain.vo.ComplaintBoxCountVo; import org.dromara.complaintBox.domain.vo.ComplaintBoxCountVo;
import org.dromara.complaintBox.domain.vo.DetailsOfTheOpinionVo; import org.dromara.complaintBox.domain.vo.DetailsOfTheOpinionVo;
import org.dromara.complaintBox.mapper.BusComplaintBoxMessageLoggingMapper; import org.dromara.complaintBox.mapper.BusComplaintBoxMessageLoggingMapper;
import org.dromara.complaintBox.service.IBusComplaintBoxDisposeLoggingService;
import org.dromara.complaintBox.service.IBusComplaintBoxMessageLoggingService; import org.dromara.complaintBox.service.IBusComplaintBoxMessageLoggingService;
import org.dromara.system.domain.vo.SysDeptVo; import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.domain.vo.SysOssVo; 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.domain.BusComplaintBox;
import org.dromara.complaintBox.mapper.BusComplaintBoxMapper; import org.dromara.complaintBox.mapper.BusComplaintBoxMapper;
import org.dromara.complaintBox.service.IBusComplaintBoxService; import org.dromara.complaintBox.service.IBusComplaintBoxService;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -50,11 +56,17 @@ public class BusComplaintBoxServiceImpl extends ServiceImpl<BusComplaintBoxMappe
// @Lazy // @Lazy
private final BusComplaintBoxMessageLoggingMapper messageLoggingMapper; private final BusComplaintBoxMessageLoggingMapper messageLoggingMapper;
@Lazy @Lazy
private final ISysUserService sysUserService; @Resource
private ISysUserService sysUserService;
@Lazy @Lazy
private final ISysDeptService sysDeptService; @Resource
private ISysDeptService sysDeptService;
@Lazy @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 @Override
@Transactional(rollbackFor = Exception.class)
public int editStatus(BusComplaintBoxBo bo) { public int editStatus(BusComplaintBoxBo bo) {
BusComplaintBoxVo busComplaintBoxVo = baseMapper.selectVoById(bo.getId()); BusComplaintBoxVo busComplaintBoxVo = baseMapper.selectVoById(bo.getId());
if (busComplaintBoxVo == null){ if (busComplaintBoxVo == null){
@ -330,8 +343,32 @@ public class BusComplaintBoxServiceImpl extends ServiceImpl<BusComplaintBoxMappe
LambdaUpdateWrapper<BusComplaintBox> lqw = new LambdaUpdateWrapper<BusComplaintBox>(); LambdaUpdateWrapper<BusComplaintBox> lqw = new LambdaUpdateWrapper<BusComplaintBox>();
lqw.set(BusComplaintBox::getStatus, bo.getStatus()); lqw.set(BusComplaintBox::getStatus, bo.getStatus());
lqw.eq(BusComplaintBox::getId, bo.getId()); 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())){ if ("0".equals(bo.getStatus())){
lqw.set(BusComplaintBox::getCurrentDisposeUserId, null); 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); return baseMapper.update(lqw);
} }

View File

@ -69,12 +69,12 @@ public class OthYs7DeviceController extends BaseController {
* *
* @param id 主键 * @param id 主键
*/ */
@SaCheckPermission("other:ys7Device:list") // @SaCheckPermission("other:ys7Device:list")
@GetMapping("/getViolationRecordInfo/{id}") // @GetMapping("/getViolationRecordInfo/{id}")
public R<HseViolationRecordVo> getViolationRecordInfo(@NotNull(message = "主键不能为空") // public R<HseViolationRecordVo> getViolationRecordInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) { // @PathVariable Long id) {
return R.ok(hseViolationRecordService.queryById(id)); // return R.ok(hseViolationRecordService.queryById(id));
} // }
/** /**
@ -84,27 +84,27 @@ public class OthYs7DeviceController extends BaseController {
@Log(title = "萤石摄像头图片", businessType = BusinessType.INSERT) @Log(title = "萤石摄像头图片", businessType = BusinessType.INSERT)
@PostMapping("/capture") @PostMapping("/capture")
public R<Void> capture(@RequestBody OthYs7DeviceImgCaptureReq req) { public R<Void> capture(@RequestBody OthYs7DeviceImgCaptureReq req) {
return toAjax(othYs7DeviceImgService.addHMCapturePic(req)); return toAjax(othYs7DeviceImgService.capturePic(req));
} }
/** /**
* 萤石摄像头图片识别 * 萤石摄像头图片识别
*/ */
@SaCheckPermission("other:ys7Device:list") // @SaCheckPermission("other:ys7Device:list")
@Log(title = "萤石摄像头图片", businessType = BusinessType.INSERT) // @Log(title = "萤石摄像头图片", businessType = BusinessType.INSERT)
@PostMapping("/discernImg") // @PostMapping("/discernImg")
public R<Void> discernImg(@RequestBody OthYs7DeviceImgCaptureReq req) { // public R<Void> discernImg(@RequestBody OthYs7DeviceImgCaptureReq req) {
return toAjax(othYs7DeviceImgService.discernImg(req)); // return toAjax(othYs7DeviceImgService.discernImg(req));
} // }
/** /**
* 下发工单 * 下发工单
*/ */
@SaCheckPermission("other:ys7Device:list") // @SaCheckPermission("other:ys7Device:list")
@Log(title = "萤石摄像头图片", businessType = BusinessType.INSERT) // @Log(title = "萤石摄像头图片", businessType = BusinessType.INSERT)
@PostMapping("/addViolationRecord") // @PostMapping("/addViolationRecord")
public R<Void> addViolationRecord(@RequestBody AddViolattionRecordReq req) { // public R<Void> addViolationRecord(@RequestBody AddViolattionRecordReq req) {
return toAjax(othYs7DeviceImgService.addViolationRecord(req)); // return toAjax(othYs7DeviceImgService.addViolationRecord(req));
} // }
/** /**
* 查询萤石摄像头图片列表 * 查询萤石摄像头图片列表
*/ */