新需求、统计、对接省厅综合指挥调度系统

master
YIN 2025-12-19 09:15:32 +08:00
parent 5f921807c3
commit aa3b836749
84 changed files with 5563 additions and 79 deletions

View File

@ -106,6 +106,7 @@ public class AuthController {
scheduledExecutorService.schedule(() -> {
SseMessageDto dto = new SseMessageDto();
dto.setMessage("欢迎使用本系统");
dto.setType("login");
dto.setUserIds(List.of(userId));
SseMessageUtils.publishMessage(dto);
}, 5, TimeUnit.SECONDS);

View File

@ -0,0 +1,70 @@
package org.dromara.web.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.date.DateUtil;
import lombok.RequiredArgsConstructor;
import org.dromara.biz.domain.bo.BizReportInfoBo;
import org.dromara.biz.domain.bo.BizStatCateBo;
import org.dromara.biz.service.IBizReportInfoService;
import org.dromara.biz.service.IBizStatCateService;
import org.dromara.common.core.config.RuoYiConfig;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
*
*
* @author Lion Li
*/
@SaIgnore
@RequiredArgsConstructor
@RestController
public class HomeController {
/**
*
*/
private final RuoYiConfig ruoyiConfig;
private final IBizStatCateService bizStatCateService;
private final IBizReportInfoService bizReportInfoService;
/**
* 访
*/
@GetMapping("/home")
public R<HashMap> index(PageQuery pageQuery) {
HashMap result = new HashMap();
LoginUser user = LoginHelper.getLoginUser();
BizStatCateBo cateBo = new BizStatCateBo();
Map<String, Object> params = cateBo.getParams();
params.put("beginTime", "");
params.put("endTime", "");
bizStatCateService.statByDate(cateBo);
BizReportInfoBo bo = new BizReportInfoBo();
bo.setOldType("dcl");
if (user.getRolePermission().contains("report_manager")){
bo.setOldTable("xxbs");
}else{
bo.setOldTable("xxcl");
}
result.put("dblist", bizReportInfoService.queryPageList(bo, pageQuery));
return R.ok(result);
}
}

View File

@ -13,7 +13,7 @@ spring.boot.admin.client:
--- # snail-job 配置
snail-job:
enabled: false
enabled: true
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
group: "ruoyi_group"
# SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表
@ -49,7 +49,8 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://192.168.0.49:3306/xxbsdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://127.0.0.1:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# url: jdbc:mysql://192.168.0.49:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: root
# type: ${spring.datasource.type}

View File

@ -52,7 +52,8 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://192.168.0.49:3306/xxbsdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://127.0.0.1:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# url: jdbc:mysql://192.168.0.49:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: root
# # 从库数据源

View File

@ -0,0 +1,138 @@
package org.dromara.common.core.enums;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StringUtils;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
*
*
* @author may
*/
@Getter
@AllArgsConstructor
public enum ReportInfoStatusEnum {
/**
* 退
*/
BACK("-1", "已退回"),
/**
*
*/
NOT_REPORTED("0", "未上报"),
/**
*
*/
WAITING_SIGN("1", "待签收"),
/**
*
*/
ANY_SIGN("2", "待签收"),
/**
*
*/
WAITING_REPLY("3", "待反馈"),
/**
*
*/
ANY_REPLY("4", "待反馈"),
/**
*
*/
REPLIED("5", "已反馈"),
/**
*
*/
FINISH("6", "已完成"),
/**
*
*/
INVALID("7", "已作废");
/**
*
*/
private final String status;
/**
*
*/
private final String desc;
private static final Map<String, ReportInfoStatusEnum> STATUS_MAP = Arrays.stream(ReportInfoStatusEnum.values())
.collect(Collectors.toConcurrentMap(ReportInfoStatusEnum::getStatus, Function.identity()));
/**
* BusinessStatusEnum
*
* @param status
* @return BusinessStatusEnum null
*/
public static ReportInfoStatusEnum getByStatus(String status) {
// 使用 STATUS_MAP 获取对应的枚举,若找不到则返回 null
return STATUS_MAP.get(status);
}
/**
*
*
* @param status
* @return
*/
public static String findByStatus(String status) {
if (StringUtils.isBlank(status)) {
return StrUtil.EMPTY;
}
ReportInfoStatusEnum statusEnum = STATUS_MAP.get(status);
return (statusEnum != null) ? statusEnum.getDesc() : StrUtil.EMPTY;
}
/**
* 稿退
*
* @param status
* @return 稿退 true false
*/
public static boolean canEdit(String status) {
return WAITING_SIGN.status.equals(status) || BACK.status.equals(status);
}
/**
*
*
* @return
* DRAFTWAITINGBACK CANCEL
*/
public static List<String> runningStatus() {
return Arrays.asList(WAITING_SIGN.status, ANY_SIGN.status, WAITING_REPLY.status, ANY_REPLY.status, BACK.status );
}
/**
*
*
* @return
* FINISHINVALID TERMINATION
*/
public static List<String> finishStatus() {
return Arrays.asList(FINISH.status, INVALID.status );
}
}

View File

@ -22,6 +22,10 @@ public class SseMessageDto implements Serializable {
*/
private List<Long> userIds;
/**
*
*/
private String type;
/**
*
*/

View File

@ -1,15 +1,16 @@
spring:
datasource:
# type: com.zaxxer.hikari.HikariDataSource
# driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# username: root
# password: root
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
username: postgres
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# url: jdbc:mysql://192.168.0.49:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: root
# type: com.zaxxer.hikari.HikariDataSource
# driver-class-name: org.postgresql.Driver
# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
# username: postgres
# password: 123456
hikari:
connection-timeout: 30000
validation-timeout: 5000

View File

@ -2,7 +2,8 @@ spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.49:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
url: jdbc:mysql://127.0.0.1:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# url: jdbc:mysql://192.168.0.49:3306/xxbsdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: root
hikari:

View File

@ -0,0 +1,84 @@
package org.dromara.job.snailjob;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import com.aizuda.snailjob.common.core.util.JsonUtil;
import com.aizuda.snailjob.common.log.SnailJobLog;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.dromara.biz.domain.BizCategory;
import org.dromara.biz.domain.BizStatCate;
import org.dromara.biz.domain.vo.BizStatCateVo;
import org.dromara.biz.mapper.BizCategoryMapper;
import org.dromara.biz.mapper.BizStatCateMapper;
import org.dromara.common.core.enums.FormatsType;
import org.dromara.common.core.utils.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.configurationprocessor.json.JSONException;
import org.springframework.boot.configurationprocessor.json.JSONObject;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author Luo.J
*/
@Component
@JobExecutor(name = "statJobExecutor")
public class StatJobExecutor {
@Autowired
private BizCategoryMapper categoryMapper;
@Autowired
private BizStatCateMapper statMapper;
public ExecuteResult jobExecute(JobArgs jobArgs) throws JSONException {
SnailJobLog.LOCAL.info("testJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs));
SnailJobLog.REMOTE.info("testJobExecutor. jobArgs:{}", JsonUtil.toJsonString(jobArgs));
Date now = new Date();
Date today = DateUtils.parseDateTime(FormatsType.YYYY_MM_DD, DateUtils.getDate());
Date yesterday = DateUtil.offsetDay(today, -1);
List<BizCategory> cates = categoryMapper.selectList(new LambdaQueryWrapper<BizCategory>()
.eq(BizCategory::getStatus, 0));
for (BizCategory cate : cates) {
Long cateId = cate.getId();
// 每天0点10分前 重新统计下昨天的数据
// if (now.getHours() == 0 && now.getMinutes() < 10)
{
BizStatCateVo statCateVo = statMapper.statYesterdayByCateId(cateId);
BizStatCate statCate = new BizStatCate();
BeanUtils.copyProperties(statCate, statCateVo);
statCate.setCateId(cateId);
statCate.setCateName(cate.getTitle());
statCate.setStatDate(yesterday);
statMapper.deleteYesterdayData(cateId);
statMapper.insert(statCate);
}
// 统计今天的数据
BizStatCateVo statCateVo = statMapper.statByCateId(cateId);
BizStatCate statCate = new BizStatCate();
BeanUtils.copyProperties(statCate, statCateVo);
statCate.setCateId(cateId);
statCate.setCateName(cate.getTitle());
statCate.setStatDate(today);
statMapper.deleteTodayData(cateId);
statMapper.insert(statCate);
}
return ExecuteResult.success("执行成功");
}
}

View File

@ -39,7 +39,7 @@ public class BizCategoryController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:category:list")
// @SaCheckPermission("biz:category:list")
@GetMapping("/alllist")
public R<List<BizCategoryVo>> alllist(BizCategoryBo bo) {
return R.ok(bizCategoryService.queryList(bo));
@ -48,7 +48,7 @@ public class BizCategoryController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:category:list")
// @SaCheckPermission("biz:category:list")
@GetMapping("/list")
public TableDataInfo<BizCategoryVo> list(BizCategoryBo bo, PageQuery pageQuery) {
return bizCategoryService.queryPageList(bo, pageQuery);
@ -57,7 +57,7 @@ public class BizCategoryController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:category:export")
// @SaCheckPermission("biz:category:export")
@Log(title = "类别", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizCategoryBo bo, HttpServletResponse response) {
@ -70,7 +70,7 @@ public class BizCategoryController extends BaseController {
*
* @param id
*/
@SaCheckPermission("biz:category:query")
// @SaCheckPermission("biz:category:query")
@GetMapping("/{id}")
public R<BizCategoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@ -80,7 +80,7 @@ public class BizCategoryController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:category:add")
// @SaCheckPermission("biz:category:add")
@Log(title = "类别", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@ -91,7 +91,7 @@ public class BizCategoryController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:category:edit")
// @SaCheckPermission("biz:category:edit")
@Log(title = "类别", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@ -104,7 +104,7 @@ public class BizCategoryController extends BaseController {
*
* @param ids
*/
@SaCheckPermission("biz:category:remove")
// @SaCheckPermission("biz:category:remove")
@Log(title = "类别", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@ -0,0 +1,115 @@
package org.dromara.biz.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.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.biz.domain.vo.BizIcdsBulletinVo;
import org.dromara.biz.domain.bo.BizIcdsBulletinBo;
import org.dromara.biz.service.IBizIcdsBulletinService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
*
* @author ruansee
* @date 2025-12-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/biz/icdsBulletin")
public class BizIcdsBulletinController extends BaseController {
private final IBizIcdsBulletinService bizIcdsBulletinService;
/**
*
*/
@SaCheckPermission("biz:icdsBulletin:list")
@GetMapping("/list")
public TableDataInfo<BizIcdsBulletinVo> list(BizIcdsBulletinBo bo, PageQuery pageQuery) {
return bizIcdsBulletinService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("biz:icdsBulletin:export")
@Log(title = "信息快报", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizIcdsBulletinBo bo, HttpServletResponse response) {
List<BizIcdsBulletinVo> list = bizIcdsBulletinService.queryList(bo);
ExcelUtil.exportExcel(list, "信息快报", BizIcdsBulletinVo.class, response);
}
/**
*
*
* @param id
*/
@SaCheckPermission("biz:icdsBulletin:query")
@GetMapping("/{id}")
public R<BizIcdsBulletinVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(bizIcdsBulletinService.queryById(id));
}
/**
*
*/
@SaCheckPermission("biz:icdsBulletin:add")
@Log(title = "信息快报", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizIcdsBulletinBo bo) {
return toAjax(bizIcdsBulletinService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("biz:icdsBulletin:edit")
@Log(title = "信息快报", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizIcdsBulletinBo bo) {
return toAjax(bizIcdsBulletinService.updateByBo(bo));
}
/**
*
*
* @param ids
*/
@SaCheckPermission("biz:icdsBulletin:remove")
@Log(title = "信息快报", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(bizIcdsBulletinService.deleteWithValidByIds(List.of(ids), true));
}
/**
*
*/
@Log(title = "信息快报", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/push")
public R<Void> push(@Validated(EditGroup.class) @RequestBody BizIcdsBulletinBo bo) {
return toAjax(bizIcdsBulletinService.push(bo));
}
}

View File

@ -0,0 +1,112 @@
package org.dromara.biz.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.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.biz.domain.vo.BizIcdsDailyVo;
import org.dromara.biz.domain.bo.BizIcdsDailyBo;
import org.dromara.biz.service.IBizIcdsDailyService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
*
* @author ruansee
* @date 2025-12-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/biz/icdsDaily")
public class BizIcdsDailyController extends BaseController {
private final IBizIcdsDailyService bizIcdsDailyService;
/**
*
*/
@SaCheckPermission("biz:icdsDaily:list")
@GetMapping("/list")
public TableDataInfo<BizIcdsDailyVo> list(BizIcdsDailyBo bo, PageQuery pageQuery) {
return bizIcdsDailyService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("biz:icdsDaily:export")
@Log(title = "每日治安动态", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizIcdsDailyBo bo, HttpServletResponse response) {
List<BizIcdsDailyVo> list = bizIcdsDailyService.queryList(bo);
ExcelUtil.exportExcel(list, "每日治安动态", BizIcdsDailyVo.class, response);
}
/**
*
*
* @param id
*/
@SaCheckPermission("biz:icdsDaily:query")
@GetMapping("/{id}")
public R<BizIcdsDailyVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(bizIcdsDailyService.queryById(id));
}
/**
*
*/
@SaCheckPermission("biz:icdsDaily:add")
@Log(title = "每日治安动态", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizIcdsDailyBo bo) {
return toAjax(bizIcdsDailyService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("biz:icdsDaily:edit")
@Log(title = "每日治安动态", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizIcdsDailyBo bo) {
return toAjax(bizIcdsDailyService.updateByBo(bo));
}
/**
*
*
* @param ids
*/
@SaCheckPermission("biz:icdsDaily:remove")
@Log(title = "每日治安动态", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(bizIcdsDailyService.deleteWithValidByIds(List.of(ids), true));
}
@Log(title = "每日治安动态", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/push")
public R<Void> push(@Validated(EditGroup.class) @RequestBody BizIcdsDailyBo bo) {
return toAjax(bizIcdsDailyService.push(bo));
}
}

View File

@ -0,0 +1,115 @@
package org.dromara.biz.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.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.biz.domain.vo.BizIcdsNoticeVo;
import org.dromara.biz.domain.bo.BizIcdsNoticeBo;
import org.dromara.biz.service.IBizIcdsNoticeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
*
* @author ruansee
* @date 2025-12-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/biz/icdsNotice")
public class BizIcdsNoticeController extends BaseController {
private final IBizIcdsNoticeService bizIcdsNoticeService;
/**
*
*/
@SaCheckPermission("biz:icdsNotice:list")
@GetMapping("/list")
public TableDataInfo<BizIcdsNoticeVo> list(BizIcdsNoticeBo bo, PageQuery pageQuery) {
return bizIcdsNoticeService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("biz:icdsNotice:export")
@Log(title = "通知公告", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizIcdsNoticeBo bo, HttpServletResponse response) {
List<BizIcdsNoticeVo> list = bizIcdsNoticeService.queryList(bo);
ExcelUtil.exportExcel(list, "通知公告", BizIcdsNoticeVo.class, response);
}
/**
*
*
* @param id
*/
@SaCheckPermission("biz:icdsNotice:query")
@GetMapping("/{id}")
public R<BizIcdsNoticeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(bizIcdsNoticeService.queryById(id));
}
/**
*
*/
@SaCheckPermission("biz:icdsNotice:add")
@Log(title = "通知公告", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizIcdsNoticeBo bo) {
return toAjax(bizIcdsNoticeService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("biz:icdsNotice:edit")
@Log(title = "通知公告", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizIcdsNoticeBo bo) {
return toAjax(bizIcdsNoticeService.updateByBo(bo));
}
/**
*
*
* @param ids
*/
@SaCheckPermission("biz:icdsNotice:remove")
@Log(title = "通知公告", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(bizIcdsNoticeService.deleteWithValidByIds(List.of(ids), true));
}
/**
*
*/
@Log(title = "通知公告", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/sign")
public R<Void> sign(@Validated(EditGroup.class) @RequestBody BizIcdsNoticeBo bo) {
return toAjax(bizIcdsNoticeService.sign(bo));
}
}

View File

@ -39,7 +39,7 @@ public class BizReportFileController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportFile:list")
// @SaCheckPermission("biz:reportFile:list")
@GetMapping("/list")
public TableDataInfo<BizReportFileVo> list(BizReportFileBo bo, PageQuery pageQuery) {
return bizReportFileService.queryPageList(bo, pageQuery);
@ -48,7 +48,7 @@ public class BizReportFileController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportFile:export")
// @SaCheckPermission("biz:reportFile:export")
@Log(title = "报送信息附件", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizReportFileBo bo, HttpServletResponse response) {
@ -61,7 +61,7 @@ public class BizReportFileController extends BaseController {
*
* @param id
*/
@SaCheckPermission("biz:reportFile:query")
// @SaCheckPermission("biz:reportFile:query")
@GetMapping("/{id}")
public R<BizReportFileVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@ -71,7 +71,7 @@ public class BizReportFileController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportFile:add")
// @SaCheckPermission("biz:reportFile:add")
@Log(title = "报送信息附件", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@ -82,7 +82,7 @@ public class BizReportFileController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportFile:edit")
// @SaCheckPermission("biz:reportFile:edit")
@Log(title = "报送信息附件", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@ -95,7 +95,7 @@ public class BizReportFileController extends BaseController {
*
* @param ids
*/
@SaCheckPermission("biz:reportFile:remove")
// @SaCheckPermission("biz:reportFile:remove")
@Log(title = "报送信息附件", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@ -44,7 +44,7 @@ public class BizReportInfoController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportInfo:list")
// @SaCheckPermission("biz:reportInfo:list")
@GetMapping("/list")
public TableDataInfo<BizReportInfoVo> list(BizReportInfoBo bo, PageQuery pageQuery) {
return bizReportInfoService.queryPageList(bo, pageQuery);
@ -53,7 +53,7 @@ public class BizReportInfoController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportInfo:list")
// @SaCheckPermission("biz:reportInfo:list")
@GetMapping("/xxcl/list")
public TableDataInfo<BizReportInfoVo> xxcllist(BizReportInfoBo bo, PageQuery pageQuery) {
bo.setOldTable("xxcl");
@ -63,7 +63,7 @@ public class BizReportInfoController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportInfo:list")
// @SaCheckPermission("biz:reportInfo:list")
@GetMapping("/xxbs/list")
public TableDataInfo<BizReportInfoVo> xxbslist(BizReportInfoBo bo, PageQuery pageQuery) {
bo.setOldTable("xxbs");
@ -73,7 +73,7 @@ public class BizReportInfoController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportInfo:export")
// @SaCheckPermission("biz:reportInfo:export")
@Log(title = "报送信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizReportInfoBo bo, HttpServletResponse response) {
@ -86,7 +86,7 @@ public class BizReportInfoController extends BaseController {
*
* @param id
*/
@SaCheckPermission("biz:reportInfo:query")
// @SaCheckPermission("biz:reportInfo:query")
@GetMapping("/{id}")
public R<BizReportInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@ -101,25 +101,19 @@ public class BizReportInfoController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportInfo:add")
// @SaCheckPermission("biz:reportInfo:add")
@Log(title = "报送信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@ResponseBody
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizReportInfoBo bo) {
LoginUser user = LoginHelper.getLoginUser();
bo.setReportDeptId(user.getDeptId());
bo.setReportDeptName(user.getDeptName());
bo.setReportUserId(user.getUserId());
bo.setReportUserName(user.getNickname());
bo.setReportTime(new Date());
return toAjax(bizReportInfoService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("biz:reportInfo:edit")
// @SaCheckPermission("biz:reportInfo:edit")
@Log(title = "报送信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@ -132,11 +126,22 @@ public class BizReportInfoController extends BaseController {
*
* @param ids
*/
@SaCheckPermission("biz:reportInfo:remove")
// @SaCheckPermission("biz:reportInfo:remove")
@Log(title = "报送信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(bizReportInfoService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 退
*/
@Log(title = "报送信息退回", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/back")
public R<Void> back(@Validated(EditGroup.class) @RequestBody BizReportInfoBo bo) {
return toAjax(bizReportInfoService.back(bo));
}
}

View File

@ -0,0 +1,105 @@
package org.dromara.biz.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.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.biz.domain.vo.BizReportPersonVo;
import org.dromara.biz.domain.bo.BizReportPersonBo;
import org.dromara.biz.service.IBizReportPersonService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
*
* @author ruansee
* @date 2025-12-06
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/biz/reportPerson")
public class BizReportPersonController extends BaseController {
private final IBizReportPersonService bizReportPersonService;
/**
*
*/
@SaCheckPermission("biz:reportPerson:list")
@GetMapping("/list")
public TableDataInfo<BizReportPersonVo> list(BizReportPersonBo bo, PageQuery pageQuery) {
return bizReportPersonService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("biz:reportPerson:export")
@Log(title = "报送关联人员", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizReportPersonBo bo, HttpServletResponse response) {
List<BizReportPersonVo> list = bizReportPersonService.queryList(bo);
ExcelUtil.exportExcel(list, "报送关联人员", BizReportPersonVo.class, response);
}
/**
*
*
* @param id
*/
@SaCheckPermission("biz:reportPerson:query")
@GetMapping("/{id}")
public R<BizReportPersonVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(bizReportPersonService.queryById(id));
}
/**
*
*/
@SaCheckPermission("biz:reportPerson:add")
@Log(title = "报送关联人员", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizReportPersonBo bo) {
return toAjax(bizReportPersonService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("biz:reportPerson:edit")
@Log(title = "报送关联人员", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizReportPersonBo bo) {
return toAjax(bizReportPersonService.updateByBo(bo));
}
/**
*
*
* @param ids
*/
@SaCheckPermission("biz:reportPerson:remove")
@Log(title = "报送关联人员", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(bizReportPersonService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -41,7 +41,7 @@ public class BizReportReceiverController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportReceiver:list")
// @SaCheckPermission("biz:reportReceiver:list")
@GetMapping("/list")
public TableDataInfo<BizReportReceiverVo> list(BizReportReceiverBo bo, PageQuery pageQuery) {
return bizReportReceiverService.queryPageList(bo, pageQuery);
@ -50,7 +50,7 @@ public class BizReportReceiverController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportReceiver:export")
// @SaCheckPermission("biz:reportReceiver:export")
@Log(title = "报送记录接收单位", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizReportReceiverBo bo, HttpServletResponse response) {
@ -63,7 +63,7 @@ public class BizReportReceiverController extends BaseController {
*
* @param id
*/
@SaCheckPermission("biz:reportReceiver:query")
// @SaCheckPermission("biz:reportReceiver:query")
@GetMapping("/{id}")
public R<BizReportReceiverVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@ -73,7 +73,7 @@ public class BizReportReceiverController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportReceiver:add")
// @SaCheckPermission("biz:reportReceiver:add")
@Log(title = "报送记录接收单位", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@ -84,7 +84,7 @@ public class BizReportReceiverController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportReceiver:edit")
// @SaCheckPermission("biz:reportReceiver:edit")
@Log(title = "报送记录接收单位", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@ -107,7 +107,7 @@ public class BizReportReceiverController extends BaseController {
*
* @param ids
*/
@SaCheckPermission("biz:reportReceiver:remove")
// @SaCheckPermission("biz:reportReceiver:remove")
@Log(title = "报送记录接收单位", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@ -39,7 +39,7 @@ public class BizReportReplyController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportReply:list")
// @SaCheckPermission("biz:reportReply:list")
@GetMapping("/list")
public TableDataInfo<BizReportReplyVo> list(BizReportReplyBo bo, PageQuery pageQuery) {
return bizReportReplyService.queryPageList(bo, pageQuery);
@ -48,7 +48,7 @@ public class BizReportReplyController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportReply:export")
// @SaCheckPermission("biz:reportReply:export")
@Log(title = "报送记录反馈", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizReportReplyBo bo, HttpServletResponse response) {
@ -61,7 +61,7 @@ public class BizReportReplyController extends BaseController {
*
* @param id
*/
@SaCheckPermission("biz:reportReply:query")
// @SaCheckPermission("biz:reportReply:query")
@GetMapping("/{id}")
public R<BizReportReplyVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@ -71,7 +71,7 @@ public class BizReportReplyController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportReply:add")
// @SaCheckPermission("biz:reportReply:add")
@Log(title = "报送记录反馈", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@ -82,7 +82,7 @@ public class BizReportReplyController extends BaseController {
/**
*
*/
@SaCheckPermission("biz:reportReply:edit")
// @SaCheckPermission("biz:reportReply:edit")
@Log(title = "报送记录反馈", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@ -95,7 +95,7 @@ public class BizReportReplyController extends BaseController {
*
* @param ids
*/
@SaCheckPermission("biz:reportReply:remove")
// @SaCheckPermission("biz:reportReply:remove")
@Log(title = "报送记录反馈", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@ -0,0 +1,115 @@
package org.dromara.biz.controller;
import java.util.HashMap;
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.biz.domain.bo.BizReportInfoBo;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.satoken.utils.LoginHelper;
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.biz.domain.vo.BizStatCateVo;
import org.dromara.biz.domain.bo.BizStatCateBo;
import org.dromara.biz.service.IBizStatCateService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
*
* @author ruansee
* @date 2025-12-01
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/biz/statCate")
public class BizStatCateController extends BaseController {
private final IBizStatCateService bizStatCateService;
@GetMapping("/statlist")
public R<List<BizStatCateVo>> statlist(BizStatCateBo bo, PageQuery pageQuery) {
return R.ok(bizStatCateService.statByDate(bo));
}
/**
*
*/
@SaCheckPermission("biz:statCate:list")
@GetMapping("/list")
public TableDataInfo<BizStatCateVo> list(BizStatCateBo bo, PageQuery pageQuery) {
return bizStatCateService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("biz:statCate:export")
@Log(title = "类别统计", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BizStatCateBo bo, HttpServletResponse response) {
List<BizStatCateVo> list = bizStatCateService.queryList(bo);
ExcelUtil.exportExcel(list, "类别统计", BizStatCateVo.class, response);
}
/**
*
*
* @param id
*/
@SaCheckPermission("biz:statCate:query")
@GetMapping("/{id}")
public R<BizStatCateVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(bizStatCateService.queryById(id));
}
/**
*
*/
@SaCheckPermission("biz:statCate:add")
@Log(title = "类别统计", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizStatCateBo bo) {
return toAjax(bizStatCateService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("biz:statCate:edit")
@Log(title = "类别统计", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizStatCateBo bo) {
return toAjax(bizStatCateService.updateByBo(bo));
}
/**
*
*
* @param ids
*/
@SaCheckPermission("biz:statCate:remove")
@Log(title = "类别统计", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(bizStatCateService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,98 @@
package org.dromara.biz.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.biz.domain.bo.BizIcdsBulletinBo;
import org.dromara.biz.domain.bo.BizIcdsDailyBo;
import org.dromara.biz.domain.bo.BizIcdsNoticeBo;
import org.dromara.biz.domain.vo.BizIcdsBulletinVo;
import org.dromara.biz.domain.vo.BizIcdsDailyVo;
import org.dromara.biz.domain.vo.BizIcdsNoticeVo;
import org.dromara.biz.service.IBizIcdsBulletinService;
import org.dromara.biz.service.IBizIcdsDailyService;
import org.dromara.biz.service.IBizIcdsNoticeService;
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.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* RPA
*
* @author ruansee
* @date 2025-12-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/rpa")
public class RPAController extends BaseController {
private final IBizIcdsNoticeService bizIcdsNoticeService;
private final IBizIcdsBulletinService bizIcdsBulletinService;
private final IBizIcdsDailyService bizIcdsDailyService;
/**
*
*/
@SaCheckPermission("biz:icdsDaily:list")
@GetMapping("/daily/list")
public TableDataInfo<BizIcdsDailyVo> list(BizIcdsDailyBo bo, PageQuery pageQuery) {
return bizIcdsDailyService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("biz:icdsBulletin:list")
@GetMapping("/bulletin/list")
public TableDataInfo<BizIcdsBulletinVo> list(BizIcdsBulletinBo bo, PageQuery pageQuery) {
return bizIcdsBulletinService.queryPageList(bo, pageQuery);
}
/**
*
*/
@GetMapping("/notice/list")
public TableDataInfo<BizIcdsNoticeVo> list(BizIcdsNoticeBo bo, PageQuery pageQuery) {
return bizIcdsNoticeService.queryPageList(bo, pageQuery);
}
/**
*
*
* @param id
*/
@GetMapping("/notice/{id}")
public R<BizIcdsNoticeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(bizIcdsNoticeService.queryById(id));
}
/**
*
*/
@Log(title = "通知公告", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/notice/add")
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizIcdsNoticeBo bo) {
return toAjax(bizIcdsNoticeService.insertByBo(bo));
}
}

View File

@ -0,0 +1,97 @@
package org.dromara.biz.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import lombok.RequiredArgsConstructor;
import org.dromara.biz.domain.bo.BizReportInfoBo;
import org.dromara.biz.domain.bo.BizStatBo;
import org.dromara.biz.domain.bo.BizStatCateBo;
import org.dromara.biz.service.IBizReportInfoService;
import org.dromara.biz.service.IBizStatCateService;
import org.dromara.biz.service.ICustomSQLService;
import org.dromara.common.core.config.RuoYiConfig;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.utils.Helper;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
*
* @author Lion Li
*/
@SaIgnore
@RequiredArgsConstructor
@RestController
@RequestMapping("/biz/stat")
public class StatController {
/**
*
*/
private final RuoYiConfig ruoyiConfig;
private final IBizStatCateService bizStatCateService;
private final ICustomSQLService customSQLService;
/**
*
*/
@GetMapping("/receiver")
public R<HashMap> receiver(BizStatBo bo) {
HashMap result = new HashMap();
LoginUser user = LoginHelper.getLoginUser();
String sql = "select t.*, round(t.sign_count/t.report_count*100, 2) sign_pencent from ( " +
" select r.dept_id, r.dept_name, count(1) report_count, sum(case when r.is_sign = 1 then 1 else 0 end) sign_count " +
" from biz_report_info i right join biz_report_receiver r on i.id = r.report_id " +
" where i.report_user_id = " + user.getUserId();
if (Helper.FInt(bo.getCateId())!=0)
sql += " and i.category_id = " + Helper.FInt(bo.getCateId());
if (!Helper.NStr(bo.getParams().get("start_time")).equals(""))
sql += " and i.report_time >= str_to_date('"+Helper.NStr(bo.getParams().get("start_time"))+"', '%Y-%m-%d')";
if (!Helper.NStr(bo.getParams().get("end_time")).equals(""))
sql += " and i.report_time < str_to_date('"+Helper.NStr(bo.getParams().get("end_time"))+"', '%Y-%m-%d') + INTERVAL 1 DAY ";
sql += " group by r.dept_id, r.dept_name " +
") t order by report_count desc ";
List<Map> list = customSQLService.selectList(sql);
result.put("data", list);
return R.ok(result);
}
/**
*
*/
@GetMapping("/tags")
public R<HashMap> tags(BizStatBo bo) {
HashMap result = new HashMap();
LoginUser user = LoginHelper.getLoginUser();
String sql = "SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(tags, ',', n.num), ',', -1) AS tag, COUNT(1) AS report_count " +
" FROM biz_report_info i, num n WHERE i.report_user_id = " + user.getUserId();
if (Helper.FInt(bo.getCateId())!=0)
sql += " and i.category_id = " + Helper.FInt(bo.getCateId());
if (!Helper.NStr(bo.getParams().get("start_time")).equals(""))
sql += " and i.report_time >= str_to_date('"+Helper.NStr(bo.getParams().get("start_time"))+"', '%Y-%m-%d')";
if (!Helper.NStr(bo.getParams().get("end_time")).equals(""))
sql += " and i.report_time < str_to_date('"+Helper.NStr(bo.getParams().get("end_time"))+"', '%Y-%m-%d') + INTERVAL 1 DAY ";
sql += " and n.num <= 1 + (LENGTH(tags) - LENGTH(REPLACE(tags, ',', ''))) GROUP BY tag";
List<Map> list = customSQLService.selectList(sql);
result.put("data", list);
return R.ok(result);
}
}

View File

@ -67,6 +67,11 @@ public class BizCategory extends BaseEntity {
*/
private String canShare;
/**
*
*/
private String canInputPerson;
/**
*
*/

View File

@ -55,6 +55,15 @@ public class BizDuty extends BaseEntity {
*/
private String leaderName;
/**
*
*/
private Long chairmanId;
/**
*
*/
private String chairmanName;
/**
* ID
*/

View File

@ -0,0 +1,133 @@
package org.dromara.biz.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* biz_icds_bulletin
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("biz_icds_bulletin")
public class BizIcdsBulletin extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "id")
private Long id;
/**
*
*/
private String title;
/**
*
*/
private String tags;
/**
*
*/
private String no;
/**
*
*/
private String contact;
/**
*
*/
private String cause;
/**
*
*/
private String otherCause;
/**
*
*/
private String level;
/**
*
*/
private String deathCount;
/**
*
*/
private String injuredCount;
/**
*
*/
private String fileUrl;
/**
*
*/
private String fileName;
/**
*
*/
private String content;
/**
*
*/
private Date reportTime;
/**
* ID
*/
private Long reportUserId;
/**
*
*/
private String reportUserName;
/**
* ID
*/
private String reportDeptId;
/**
*
*/
private String reportDeptName;
/**
*
*/
private String status;
/**
* ID
*/
private Long updateUserId;
/**
* 0 1 2
*/
private Long isSyn;
}

View File

@ -0,0 +1,108 @@
package org.dromara.biz.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* biz_icds_daily
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("biz_icds_daily")
public class BizIcdsDaily extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "id")
private Long id;
/**
*
*/
private String title;
/**
*
*/
private String tags;
/**
*
*/
private String no;
/**
*
*/
private String contact;
/**
*
*/
private String fileUrl;
/**
*
*/
private String fileName;
/**
*
*/
private String content;
/**
*
*/
private Date reportTime;
/**
* ID
*/
private Long reportUserId;
/**
*
*/
private String reportUserName;
/**
* ID
*/
private String reportDeptId;
/**
*
*/
private String reportDeptName;
/**
*
*/
private String status;
/**
* ID
*/
private Long updateUserId;
/**
* 0 1 2
*/
private Long isSyn;
}

View File

@ -0,0 +1,83 @@
package org.dromara.biz.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* biz_icds_notice
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("biz_icds_notice")
public class BizIcdsNotice extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "id")
private Long id;
/**
* ID
*/
private String oldId;
/**
*
*/
private String title;
/**
*
*/
private String fileUrl;
/**
*
*/
private String fileName;
/**
*
*/
private String content;
/**
*
*/
private Date sendTime;
/**
*
*/
private String sendUserName;
/**
*
*/
private String sendDeptName;
/**
*
*/
private String status;
/**
* 0 1 2
*/
private Long isSyn;
}

View File

@ -39,6 +39,11 @@ public class BizReportInfo extends BaseEntity {
*/
private Long categoryId;
/**
*
*/
private String tags;
/**
*
*/

View File

@ -0,0 +1,403 @@
package org.dromara.biz.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* biz_report_person
*
* @author ruansee
* @date 2025-12-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("biz_report_person")
public class BizReportPerson extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "id")
private Long id;
/**
* ID
*/
private Long reportId;
/**
*
*/
private String xm;
/**
*
*/
private String zjlx;
/**
*
*/
private String zjhm;
/**
*
*/
private String sfzh;
/**
*
*/
private String csrq;
/**
*
*/
private String xb;
/**
*
*/
private String mz;
/**
*
*/
private String xl;
/**
*
*/
private String gj;
/**
*
*/
private String jg;
/**
*
*/
private String hyzk;
/**
*
*/
private String byzk;
/**
*
*/
private String xzdqh;
/**
*
*/
private String xzdpcs;
/**
*
*/
private String xzdxz;
/**
*
*/
private String hjdqh;
/**
*
*/
private String hjdpcs;
/**
*
*/
private String hjdxz;
/**
*
*/
private String phone;
/**
*
*/
private String wxhm;
/**
*
*/
private String cph;
/**
*
*/
private String zpdz;
/**
*
*/
private String xmpy;
/**
*
*/
private String ywxm;
/**
* QQ
*/
private String qq;
/**
*
*/
private String hyd;
/**
*
*/
private String ryjb;
/**
*
*/
private String sfrk;
/**
*
*/
private String ryjs;
/**
*
*/
private String rylb;
/**
*
*/
private String ryxl;
/**
*
*/
private String fxdj;
/**
*
*/
private String tzje;
/**
*
*/
private String ssje;
/**
*
*/
private String jksje;
/**
*
*/
private String tzpt;
/**
*
*/
private String sfptyg;
/**
*
*/
private String jbsq;
/**
*
*/
private String ssqt;
/**
*
*/
private String wxq;
/**
* QQ
*/
private String qqq;
/**
*
*/
private String gkdwdm;
/**
*
*/
private String gkdwmc;
/**
*
*/
private String gkrjh;
/**
*
*/
private String gkrxm;
/**
*
*/
private String gkrsjh;
/**
*
*/
private String wkzt;
/**
*
*/
private String gphcdwdm;
/**
*
*/
private String gphcdwmc;
/**
*
*/
private String gpfkyy;
/**
*
*/
private String wfhcyy;
/**
*
*/
private String szdlx;
/**
*
*/
private String szdxzqh;
/**
*
*/
private String gzqk;
/**
*
*/
private String fileUrl;
/**
*
*/
private String fileName;
/**
*
*/
private Date cjsj;
/**
*
*/
private Date gxsj;
/**
* ID
*/
private Long cjrid;
/**
*
*/
private String cjrxm;
/**
*
*/
private String cjrjh;
/**
*
*/
private String cjrjgdw;
/**
*
*/
private String cjrjgdwdm;
/**
* ID
*/
private Long gxrid;
/**
*
*/
private String gxrxm;
/**
*
*/
private String gxrjh;
/**
*
*/
private String gxrjgdw;
/**
*
*/
private String gxrjgdwdm;
/**
*
*/
private String czdwdm;
/**
*
*/
private String czdw;
/**
*
*/
private String fxpg;
/**
*
*/
private String fjxs;
/**
*
*/
private String sfgp;
}

View File

@ -0,0 +1,63 @@
package org.dromara.biz.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* biz_stat_cate
*
* @author ruansee
* @date 2025-12-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("biz_stat_cate")
public class BizStatCate extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "id")
private Long id;
/**
*
*/
private Date statDate;
/**
* ID
*/
private Long cateId;
/**
*
*/
private String cateName;
/**
*
*/
private Long reportCount;
/**
*
*/
private Long signCount;
/**
*
*/
private Long replyCount;
}

View File

@ -50,31 +50,31 @@ public class BizCategoryBo extends BaseEntity {
/**
*
*/
@NotBlank(message = "是否可以签收不能为空", groups = { AddGroup.class, EditGroup.class })
private String canSign;
/**
*
*/
@NotBlank(message = "是否可以反馈不能为空", groups = { AddGroup.class, EditGroup.class })
private String canFeedback;
/**
*
*/
@NotBlank(message = "是否可以回复不能为空", groups = { AddGroup.class, EditGroup.class })
private String canReply;
/**
*
*/
@NotBlank(message = "是否可以分享转发不能为空", groups = { AddGroup.class, EditGroup.class })
private String canShare;
/**
*
*/
private String canInputPerson;
/**
*
*/
@NotBlank(message = "模板地址不能为空", groups = { AddGroup.class, EditGroup.class })
private String templateUrl;
/**

View File

@ -54,6 +54,16 @@ public class BizDutyBo extends BaseEntity {
*/
private String leaderName;
/**
*
*/
private Long chairmanId;
/**
*
*/
private String chairmanName;
/**
* ID
*/

View File

@ -0,0 +1,132 @@
package org.dromara.biz.domain.bo;
import org.dromara.biz.domain.BizIcdsBulletin;
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.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* biz_icds_bulletin
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BizIcdsBulletin.class, reverseConvertGenerate = false)
public class BizIcdsBulletinBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "ID不能为空", groups = { EditGroup.class })
private Long id;
/**
*
*/
private String title;
/**
*
*/
private String tags;
/**
*
*/
private String no;
/**
*
*/
private String contact;
/**
*
*/
private String cause;
/**
*
*/
private String otherCause;
/**
*
*/
private String level;
/**
*
*/
private String deathCount;
/**
*
*/
private String injuredCount;
/**
*
*/
private String fileUrl;
/**
*
*/
private String fileName;
/**
*
*/
private String content;
/**
*
*/
private Date reportTime;
/**
* ID
*/
private Long reportUserId;
/**
*
*/
private String reportUserName;
/**
* ID
*/
private String reportDeptId;
/**
*
*/
private String reportDeptName;
/**
*
*/
private String status;
/**
* ID
*/
private Long updateUserId;
/**
* 0 1 2
*/
private Long isSyn;
}

View File

@ -0,0 +1,107 @@
package org.dromara.biz.domain.bo;
import org.dromara.biz.domain.BizIcdsDaily;
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.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* biz_icds_daily
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BizIcdsDaily.class, reverseConvertGenerate = false)
public class BizIcdsDailyBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "ID不能为空", groups = { EditGroup.class })
private Long id;
/**
*
*/
private String title;
/**
*
*/
private String tags;
/**
*
*/
private String no;
/**
*
*/
private String contact;
/**
*
*/
private String fileUrl;
/**
*
*/
private String fileName;
/**
*
*/
private String content;
/**
*
*/
private Date reportTime;
/**
* ID
*/
private Long reportUserId;
/**
*
*/
private String reportUserName;
/**
* ID
*/
private String reportDeptId;
/**
*
*/
private String reportDeptName;
/**
*
*/
private String status;
/**
* ID
*/
private Long updateUserId;
/**
* 0 1 2
*/
private Long isSyn;
}

View File

@ -0,0 +1,82 @@
package org.dromara.biz.domain.bo;
import org.dromara.biz.domain.BizIcdsNotice;
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.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* biz_icds_notice
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BizIcdsNotice.class, reverseConvertGenerate = false)
public class BizIcdsNoticeBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* ID
*/
private String oldId;
/**
*
*/
private String title;
/**
*
*/
private String fileUrl;
/**
*
*/
private String fileName;
/**
*
*/
private String content;
/**
*
*/
private Date sendTime;
/**
*
*/
private String sendUserName;
/**
*
*/
private String sendDeptName;
/**
*
*/
private String status;
/**
* 0 1 2
*/
private Long isSyn;
}

View File

@ -2,6 +2,7 @@ package org.dromara.biz.domain.bo;
import org.dromara.biz.domain.BizReportFile;
import org.dromara.biz.domain.BizReportInfo;
import org.dromara.biz.domain.BizReportPerson;
import org.dromara.biz.domain.BizReportReceiver;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
@ -42,6 +43,11 @@ public class BizReportInfoBo extends BaseEntity {
*/
private Long categoryId;
/**
*
*/
private String tags;
/**
*
*/
@ -147,4 +153,9 @@ public class BizReportInfoBo extends BaseEntity {
* ID
*/
private String[] receiverDeptIds;
/**
* 线
*/
private List<BizReportPerson> personList;
}

View File

@ -0,0 +1,402 @@
package org.dromara.biz.domain.bo;
import org.dromara.biz.domain.BizReportPerson;
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.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* biz_report_person
*
* @author ruansee
* @date 2025-12-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BizReportPerson.class, reverseConvertGenerate = false)
public class BizReportPersonBo extends BaseEntity {
/**
*
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* ID
*/
private Long reportId;
/**
*
*/
private String xm;
/**
*
*/
private String zjlx;
/**
*
*/
private String zjhm;
/**
*
*/
private String sfzh;
/**
*
*/
private String csrq;
/**
*
*/
private String xb;
/**
*
*/
private String mz;
/**
*
*/
private String xl;
/**
*
*/
private String gj;
/**
*
*/
private String jg;
/**
*
*/
private String hyzk;
/**
*
*/
private String byzk;
/**
*
*/
private String xzdqh;
/**
*
*/
private String xzdpcs;
/**
*
*/
private String xzdxz;
/**
*
*/
private String hjdqh;
/**
*
*/
private String hjdpcs;
/**
*
*/
private String hjdxz;
/**
*
*/
private String phone;
/**
*
*/
private String wxhm;
/**
*
*/
private String cph;
/**
*
*/
private String zpdz;
/**
*
*/
private String xmpy;
/**
*
*/
private String ywxm;
/**
* QQ
*/
private String qq;
/**
*
*/
private String hyd;
/**
*
*/
private String ryjb;
/**
*
*/
private String sfrk;
/**
*
*/
private String ryjs;
/**
*
*/
private String rylb;
/**
*
*/
private String ryxl;
/**
*
*/
private String fxdj;
/**
*
*/
private String tzje;
/**
*
*/
private String ssje;
/**
*
*/
private String jksje;
/**
*
*/
private String tzpt;
/**
*
*/
private String sfptyg;
/**
*
*/
private String jbsq;
/**
*
*/
private String ssqt;
/**
*
*/
private String wxq;
/**
* QQ
*/
private String qqq;
/**
*
*/
private String gkdwdm;
/**
*
*/
private String gkdwmc;
/**
*
*/
private String gkrjh;
/**
*
*/
private String gkrxm;
/**
*
*/
private String gkrsjh;
/**
*
*/
private String wkzt;
/**
*
*/
private String gphcdwdm;
/**
*
*/
private String gphcdwmc;
/**
*
*/
private String gpfkyy;
/**
*
*/
private String wfhcyy;
/**
*
*/
private String szdlx;
/**
*
*/
private String szdxzqh;
/**
*
*/
private String gzqk;
/**
*
*/
private String fileUrl;
/**
*
*/
private String fileName;
/**
*
*/
private Date cjsj;
/**
*
*/
private Date gxsj;
/**
* ID
*/
private Long cjrid;
/**
*
*/
private String cjrxm;
/**
*
*/
private String cjrjh;
/**
*
*/
private String cjrjgdw;
/**
*
*/
private String cjrjgdwdm;
/**
* ID
*/
private Long gxrid;
/**
*
*/
private String gxrxm;
/**
*
*/
private String gxrjh;
/**
*
*/
private String gxrjgdw;
/**
*
*/
private String gxrjgdwdm;
/**
*
*/
private String czdwdm;
/**
*
*/
private String czdw;
/**
*
*/
private String fxpg;
/**
*
*/
private String fjxs;
/**
*
*/
private String sfgp;
}

View File

@ -0,0 +1,40 @@
package org.dromara.biz.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.biz.domain.BizStatCate;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.util.Date;
/**
* biz_stat_cate
*
* @author ruansee
* @date 2025-12-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class BizStatBo extends BaseEntity {
/**
*
*/
private Date statDate;
/**
* ID
*/
private Long cateId;
/**
*
*/
private String cateName;
}

View File

@ -0,0 +1,62 @@
package org.dromara.biz.domain.bo;
import org.dromara.biz.domain.BizStatCate;
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.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* biz_stat_cate
*
* @author ruansee
* @date 2025-12-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BizStatCate.class, reverseConvertGenerate = false)
public class BizStatCateBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "ID不能为空", groups = { EditGroup.class })
private Long id;
/**
*
*/
private Date statDate;
/**
* ID
*/
private Long cateId;
/**
*
*/
private String cateName;
/**
*
*/
private Long reportCount;
/**
*
*/
private Long signCount;
/**
*
*/
private Long replyCount;
}

View File

@ -87,6 +87,13 @@ public class BizCategoryVo implements Serializable {
@ExcelDictFormat(dictType = "sys_yes_no")
private String canShare;
/**
*
*/
@ExcelProperty(value = "是否可以录入人员信息", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_yes_no")
private String canInputPerson;
/**
*
*/

View File

@ -76,6 +76,24 @@ public class BizDutyVo implements Serializable {
*/
private SysUser leader;
/**
*
*/
@ExcelProperty(value = "值班主任")
private Long chairmanId;
/**
*
*/
@ExcelProperty(value = "值班主任名称")
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "chairmanId")
private String chairmanName;
/**
*
*/
private SysUser chairman;
/**
* ID
*/

View File

@ -0,0 +1,160 @@
package org.dromara.biz.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.biz.domain.BizIcdsBulletin;
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;
/**
* biz_icds_bulletin
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BizIcdsBulletin.class)
public class BizIcdsBulletinVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Long id;
/**
*
*/
@ExcelProperty(value = "标题")
private String title;
/**
*
*/
@ExcelProperty(value = "报送标签")
private String tags;
/**
*
*/
@ExcelProperty(value = "编号")
private String no;
/**
*
*/
@ExcelProperty(value = "联系方式")
private String contact;
/**
*
*/
@ExcelProperty(value = "案由")
private String cause;
/**
*
*/
@ExcelProperty(value = "其他按钮")
private String otherCause;
/**
*
*/
@ExcelProperty(value = "警情级别")
private String level;
/**
*
*/
@ExcelProperty(value = "死亡人数")
private String deathCount;
/**
*
*/
@ExcelProperty(value = "受伤人数")
private String injuredCount;
/**
*
*/
@ExcelProperty(value = "附件路径")
private String fileUrl;
/**
*
*/
@ExcelProperty(value = "附件名称")
private String fileName;
/**
*
*/
@ExcelProperty(value = "上报内容")
private String content;
/**
*
*/
@ExcelProperty(value = "上报时间")
private Date reportTime;
/**
* ID
*/
@ExcelProperty(value = "上报用户ID")
private Long reportUserId;
/**
*
*/
@ExcelProperty(value = "上报用户名称")
private String reportUserName;
/**
* ID
*/
@ExcelProperty(value = "上报单位ID")
private String reportDeptId;
/**
*
*/
@ExcelProperty(value = "上报单位名称")
private String reportDeptName;
/**
*
*/
@ExcelProperty(value = "上报状态")
private String status;
/**
* ID
*/
@ExcelProperty(value = "更新用户ID")
private Long updateUserId;
/**
* 0 1 2
*/
@ExcelProperty(value = "推送状态 0不需要推送 1待推送 2已推送")
private Long isSyn;
}

View File

@ -0,0 +1,130 @@
package org.dromara.biz.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.biz.domain.BizIcdsDaily;
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;
/**
* biz_icds_daily
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BizIcdsDaily.class)
public class BizIcdsDailyVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Long id;
/**
*
*/
@ExcelProperty(value = "标题")
private String title;
/**
*
*/
@ExcelProperty(value = "报送标签")
private String tags;
/**
*
*/
@ExcelProperty(value = "编号")
private String no;
/**
*
*/
@ExcelProperty(value = "联系方式")
private String contact;
/**
*
*/
@ExcelProperty(value = "附件路径")
private String fileUrl;
/**
*
*/
@ExcelProperty(value = "附件名称")
private String fileName;
/**
*
*/
@ExcelProperty(value = "上报内容")
private String content;
/**
*
*/
@ExcelProperty(value = "上报时间")
private Date reportTime;
/**
* ID
*/
@ExcelProperty(value = "上报用户ID")
private Long reportUserId;
/**
*
*/
@ExcelProperty(value = "上报用户名称")
private String reportUserName;
/**
* ID
*/
@ExcelProperty(value = "上报单位ID")
private String reportDeptId;
/**
*
*/
@ExcelProperty(value = "上报单位名称")
private String reportDeptName;
/**
*
*/
@ExcelProperty(value = "上报状态")
private String status;
/**
* ID
*/
@ExcelProperty(value = "更新用户ID")
private Long updateUserId;
/**
* 0 1 2
*/
@ExcelProperty(value = "推送状态 0不需要推送 1待推送 2已推送")
private Long isSyn;
}

View File

@ -0,0 +1,100 @@
package org.dromara.biz.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.biz.domain.BizIcdsNotice;
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;
/**
* biz_icds_notice
*
* @author ruansee
* @date 2025-12-15
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BizIcdsNotice.class)
public class BizIcdsNoticeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Long id;
/**
* ID
*/
@ExcelProperty(value = "原表ID")
private String oldId;
/**
*
*/
@ExcelProperty(value = "标题")
private String title;
/**
*
*/
@ExcelProperty(value = "附件路径")
private String fileUrl;
/**
*
*/
@ExcelProperty(value = "附件名称")
private String fileName;
/**
*
*/
@ExcelProperty(value = "内容")
private String content;
/**
*
*/
@ExcelProperty(value = "通知时间")
private Date sendTime;
/**
*
*/
@ExcelProperty(value = "下发用户名称")
private String sendUserName;
/**
*
*/
@ExcelProperty(value = "下发单位名称")
private String sendDeptName;
/**
*
*/
@ExcelProperty(value = "下发状态")
private String status;
/**
* 0 1 2
*/
@ExcelProperty(value = "推送状态 0不需要推送 1待推送 2已推送")
private Long isSyn;
}

View File

@ -6,6 +6,7 @@ import org.dromara.biz.domain.BizReportFile;
import org.dromara.biz.domain.BizReportInfo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.biz.domain.BizReportPerson;
import org.dromara.biz.domain.BizReportReceiver;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
@ -50,6 +51,11 @@ public class BizReportInfoVo implements Serializable {
@ExcelProperty(value = "类别ID")
private Long categoryId;
/**
*
*/
private String tags;
/**
*
*/
@ -183,4 +189,8 @@ public class BizReportInfoVo implements Serializable {
private String[] receiverDeptIds;
private String pdfUrl;
/**
* 线
*/
private List<BizReportPerson> personList;
}

View File

@ -0,0 +1,484 @@
package org.dromara.biz.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.biz.domain.BizReportPerson;
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;
/**
* biz_report_person
*
* @author ruansee
* @date 2025-12-06
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BizReportPerson.class)
public class BizReportPersonVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "主键")
private Long id;
/**
* ID
*/
@ExcelProperty(value = "报送信息ID")
private Long reportId;
/**
*
*/
@ExcelProperty(value = "姓名")
private String xm;
/**
*
*/
@ExcelProperty(value = "证件类型")
private String zjlx;
/**
*
*/
@ExcelProperty(value = "证件号码")
private String zjhm;
/**
*
*/
@ExcelProperty(value = "身份证号")
private String sfzh;
/**
*
*/
@ExcelProperty(value = "出生日期")
private String csrq;
/**
*
*/
@ExcelProperty(value = "性别")
private String xb;
/**
*
*/
@ExcelProperty(value = "民族")
private String mz;
/**
*
*/
@ExcelProperty(value = "学历")
private String xl;
/**
*
*/
@ExcelProperty(value = "国籍")
private String gj;
/**
*
*/
@ExcelProperty(value = "籍贯")
private String jg;
/**
*
*/
@ExcelProperty(value = "婚姻状况")
private String hyzk;
/**
*
*/
@ExcelProperty(value = "兵役状况")
private String byzk;
/**
*
*/
@ExcelProperty(value = "现住地区划")
private String xzdqh;
/**
*
*/
@ExcelProperty(value = "现住地派出所")
private String xzdpcs;
/**
*
*/
@ExcelProperty(value = "现住地详址")
private String xzdxz;
/**
*
*/
@ExcelProperty(value = "户籍地区划")
private String hjdqh;
/**
*
*/
@ExcelProperty(value = "户籍地派出所")
private String hjdpcs;
/**
*
*/
@ExcelProperty(value = "户籍地详址")
private String hjdxz;
/**
*
*/
@ExcelProperty(value = "手机号码")
private String phone;
/**
*
*/
@ExcelProperty(value = "微信号码")
private String wxhm;
/**
*
*/
@ExcelProperty(value = "车牌号")
private String cph;
/**
*
*/
@ExcelProperty(value = "照片")
private String zpdz;
/**
*
*/
@ExcelProperty(value = "姓名拼音")
private String xmpy;
/**
*
*/
@ExcelProperty(value = "英文姓名")
private String ywxm;
/**
* QQ
*/
@ExcelProperty(value = "QQ")
private String qq;
/**
*
*/
@ExcelProperty(value = "活跃度")
private String hyd;
/**
*
*/
@ExcelProperty(value = "人员级别")
private String ryjb;
/**
*
*/
@ExcelProperty(value = "是否入库")
private String sfrk;
/**
*
*/
@ExcelProperty(value = "人员角色")
private String ryjs;
/**
*
*/
@ExcelProperty(value = "人员类别")
private String rylb;
/**
*
*/
@ExcelProperty(value = "人员细类")
private String ryxl;
/**
*
*/
@ExcelProperty(value = "风险等级")
private String fxdj;
/**
*
*/
@ExcelProperty(value = "投资金额")
private String tzje;
/**
*
*/
@ExcelProperty(value = "受损金额")
private String ssje;
/**
*
*/
@ExcelProperty(value = "净亏损金额")
private String jksje;
/**
*
*/
@ExcelProperty(value = "投资平台")
private String tzpt;
/**
*
*/
@ExcelProperty(value = "是否平台员工")
private String sfptyg;
/**
*
*/
@ExcelProperty(value = "基本诉求")
private String jbsq;
/**
*
*/
@ExcelProperty(value = "涉事群体 逗号分隔")
private String ssqt;
/**
*
*/
@ExcelProperty(value = "微信群")
private String wxq;
/**
* QQ
*/
@ExcelProperty(value = "QQ群")
private String qqq;
/**
*
*/
@ExcelProperty(value = "管控单位代码")
private String gkdwdm;
/**
*
*/
@ExcelProperty(value = "管控单位名称")
private String gkdwmc;
/**
*
*/
@ExcelProperty(value = "管控人警号")
private String gkrjh;
/**
*
*/
@ExcelProperty(value = "管控人")
private String gkrxm;
/**
*
*/
@ExcelProperty(value = "管控人手机号")
private String gkrsjh;
/**
*
*/
@ExcelProperty(value = "稳控状态")
private String wkzt;
/**
*
*/
@ExcelProperty(value = "改派核查单位代码")
private String gphcdwdm;
/**
*
*/
@ExcelProperty(value = "改派核查单位名称")
private String gphcdwmc;
/**
*
*/
@ExcelProperty(value = "改派核查原因")
private String gpfkyy;
/**
*
*/
@ExcelProperty(value = "无法核查原因")
private String wfhcyy;
/**
*
*/
@ExcelProperty(value = "所在地类型")
private String szdlx;
/**
*
*/
@ExcelProperty(value = "所在地行政区划")
private String szdxzqh;
/**
*
*/
@ExcelProperty(value = "工作情况")
private String gzqk;
/**
*
*/
@ExcelProperty(value = "附件地址")
private String fileUrl;
/**
*
*/
@ExcelProperty(value = "附件名称")
private String fileName;
/**
*
*/
@ExcelProperty(value = "创建时间")
private Date cjsj;
/**
*
*/
@ExcelProperty(value = "更新时间")
private Date gxsj;
/**
* ID
*/
@ExcelProperty(value = "创建用户ID")
private Long cjrid;
/**
*
*/
@ExcelProperty(value = "创建人姓名")
private String cjrxm;
/**
*
*/
@ExcelProperty(value = "创建人警号")
private String cjrjh;
/**
*
*/
@ExcelProperty(value = "创建人机构单位")
private String cjrjgdw;
/**
*
*/
@ExcelProperty(value = "创建人机构单位代码")
private String cjrjgdwdm;
/**
* ID
*/
@ExcelProperty(value = "更新用户ID")
private Long gxrid;
/**
*
*/
@ExcelProperty(value = "更新人姓名")
private String gxrxm;
/**
*
*/
@ExcelProperty(value = "更新人警号")
private String gxrjh;
/**
*
*/
@ExcelProperty(value = "更新人机构单位")
private String gxrjgdw;
/**
*
*/
@ExcelProperty(value = "更新人机构单位代码")
private String gxrjgdwdm;
/**
*
*/
@ExcelProperty(value = "处置单位代码")
private String czdwdm;
/**
*
*/
@ExcelProperty(value = "处置单位名称")
private String czdw;
/**
*
*/
@ExcelProperty(value = "风险评估")
private String fxpg;
/**
*
*/
@ExcelProperty(value = "法教形式")
private String fjxs;
/**
*
*/
@ExcelProperty(value = "是否购票")
private String sfgp;
}

View File

@ -0,0 +1,101 @@
package org.dromara.biz.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.biz.domain.BizStatCate;
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;
/**
* biz_stat_cate
*
* @author ruansee
* @date 2025-12-01
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BizStatCate.class)
public class BizStatCateVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Long id;
/**
*
*/
@ExcelProperty(value = "统计日期")
private Date statDate;
/**
* ID
*/
@ExcelProperty(value = "统计类别ID")
private Long cateId;
/**
*
*/
@ExcelProperty(value = "统计类别名称")
private String cateName;
/**
*
*/
@ExcelProperty(value = "报送数量")
private Long reportCount;
/**
*
*/
@ExcelProperty(value = "签收数量")
private Long signCount;
/**
*
*/
@ExcelProperty(value = "反馈数量")
private Long replyCount;
/**
*
*/
private String cate;
/**
*
*/
private Integer bqs;
/**
*
*/
private Integer tqs;
/**
*
*/
private Integer sqs;
/**
*
*/
private String tb;
/**
*
*/
private String hb;
}

View File

@ -0,0 +1,15 @@
package org.dromara.biz.mapper;
import org.dromara.biz.domain.BizIcdsBulletin;
import org.dromara.biz.domain.vo.BizIcdsBulletinVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author ruansee
* @date 2025-12-15
*/
public interface BizIcdsBulletinMapper extends BaseMapperPlus<BizIcdsBulletin, BizIcdsBulletinVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.biz.mapper;
import org.dromara.biz.domain.BizIcdsDaily;
import org.dromara.biz.domain.vo.BizIcdsDailyVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author ruansee
* @date 2025-12-15
*/
public interface BizIcdsDailyMapper extends BaseMapperPlus<BizIcdsDaily, BizIcdsDailyVo> {
}

View File

@ -0,0 +1,15 @@
package org.dromara.biz.mapper;
import org.dromara.biz.domain.BizIcdsNotice;
import org.dromara.biz.domain.vo.BizIcdsNoticeVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author ruansee
* @date 2025-12-15
*/
public interface BizIcdsNoticeMapper extends BaseMapperPlus<BizIcdsNotice, BizIcdsNoticeVo> {
}

View File

@ -1,7 +1,11 @@
package org.dromara.biz.mapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.dromara.biz.domain.BizReportFile;
import org.dromara.biz.domain.vo.BizReportFileVo;
import org.dromara.biz.domain.vo.BizReportInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
@ -12,4 +16,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface BizReportFileMapper extends BaseMapperPlus<BizReportFile, BizReportFileVo> {
@Delete("delete from biz_report_file where report_id = ${reportId}")
int deleteByReportId(@Param("reportId") Long reportId);
}

View File

@ -0,0 +1,15 @@
package org.dromara.biz.mapper;
import org.dromara.biz.domain.BizReportPerson;
import org.dromara.biz.domain.vo.BizReportPersonVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author ruansee
* @date 2025-12-06
*/
public interface BizReportPersonMapper extends BaseMapperPlus<BizReportPerson, BizReportPersonVo> {
}

View File

@ -0,0 +1,30 @@
package org.dromara.biz.mapper;
import org.apache.ibatis.annotations.Delete;
import org.dromara.biz.domain.BizStatCate;
import org.dromara.biz.domain.bo.BizStatCateBo;
import org.dromara.biz.domain.vo.BizStatCateVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* Mapper
*
* @author ruansee
* @date 2025-12-01
*/
public interface BizStatCateMapper extends BaseMapperPlus<BizStatCate, BizStatCateVo> {
BizStatCateVo statByCateId(Long cateId);
BizStatCateVo statYesterdayByCateId(Long cateId);
@Delete("delete from biz_stat_cate where cate_id = ${cateId} and stat_date = CURDATE() - INTERVAL 1 DAY")
int deleteYesterdayData(Long cateId);
@Delete("delete from biz_stat_cate where cate_id = ${cateId} and stat_date = CURDATE()")
int deleteTodayData(Long cateId);
List<BizStatCateVo> statByDate(BizStatCateBo bo);
}

View File

@ -0,0 +1,34 @@
package org.dromara.biz.mapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
import java.util.Map;
/**
* SQL Mapper
*
* @author YIN
* @date 2025-05-21
*/
public interface CustomSQLMapper {
@Select("${sql}")
Map selectOne(String sql);
@Select("${sql}")
List<Map> selectList(String sql);
@Insert("${sql}")
int insertOne(String sql);
@Update("${sql}")
int updateOne(String sql);
@Delete("${sql}")
int deleteOne(String sql);
}

View File

@ -0,0 +1,76 @@
package org.dromara.biz.service;
import org.dromara.biz.domain.vo.BizIcdsBulletinVo;
import org.dromara.biz.domain.bo.BizIcdsBulletinBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author ruansee
* @date 2025-12-15
*/
public interface IBizIcdsBulletinService {
/**
*
*
* @param id
* @return
*/
BizIcdsBulletinVo queryById(Long id);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<BizIcdsBulletinVo> queryPageList(BizIcdsBulletinBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<BizIcdsBulletinVo> queryList(BizIcdsBulletinBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(BizIcdsBulletinBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(BizIcdsBulletinBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
*
*
* @param bo
* @return
*/
Boolean push(BizIcdsBulletinBo bo);
}

View File

@ -0,0 +1,76 @@
package org.dromara.biz.service;
import org.dromara.biz.domain.vo.BizIcdsDailyVo;
import org.dromara.biz.domain.bo.BizIcdsDailyBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author ruansee
* @date 2025-12-15
*/
public interface IBizIcdsDailyService {
/**
*
*
* @param id
* @return
*/
BizIcdsDailyVo queryById(Long id);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<BizIcdsDailyVo> queryPageList(BizIcdsDailyBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<BizIcdsDailyVo> queryList(BizIcdsDailyBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(BizIcdsDailyBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(BizIcdsDailyBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
*
*
* @param bo
* @return
*/
Boolean push(BizIcdsDailyBo bo);
}

View File

@ -0,0 +1,76 @@
package org.dromara.biz.service;
import org.dromara.biz.domain.vo.BizIcdsNoticeVo;
import org.dromara.biz.domain.bo.BizIcdsNoticeBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author ruansee
* @date 2025-12-15
*/
public interface IBizIcdsNoticeService {
/**
*
*
* @param id
* @return
*/
BizIcdsNoticeVo queryById(Long id);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<BizIcdsNoticeVo> queryPageList(BizIcdsNoticeBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<BizIcdsNoticeVo> queryList(BizIcdsNoticeBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(BizIcdsNoticeBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(BizIcdsNoticeBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
*
*
* @param bo
* @return
*/
Boolean sign(BizIcdsNoticeBo bo);
}

View File

@ -65,4 +65,12 @@ public interface IBizReportInfoService {
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 退
*
* @param bo
* @return
*/
Boolean back(BizReportInfoBo bo);
}

View File

@ -0,0 +1,68 @@
package org.dromara.biz.service;
import org.dromara.biz.domain.vo.BizReportPersonVo;
import org.dromara.biz.domain.bo.BizReportPersonBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author ruansee
* @date 2025-12-06
*/
public interface IBizReportPersonService {
/**
*
*
* @param id
* @return
*/
BizReportPersonVo queryById(Long id);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<BizReportPersonVo> queryPageList(BizReportPersonBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<BizReportPersonVo> queryList(BizReportPersonBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(BizReportPersonBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(BizReportPersonBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,70 @@
package org.dromara.biz.service;
import org.dromara.biz.domain.vo.BizStatCateVo;
import org.dromara.biz.domain.bo.BizStatCateBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author ruansee
* @date 2025-12-01
*/
public interface IBizStatCateService {
List<BizStatCateVo> statByDate(BizStatCateBo bo);
/**
*
*
* @param id
* @return
*/
BizStatCateVo queryById(Long id);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<BizStatCateVo> queryPageList(BizStatCateBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<BizStatCateVo> queryList(BizStatCateBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(BizStatCateBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(BizStatCateBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,25 @@
package org.dromara.biz.service;
import java.util.List;
import java.util.Map;
/**
* SQL Service
*
* @author YIN
* @date 2025-05-21
*/
public interface ICustomSQLService {
Map selectOne(String sql);
List<Map> selectList(String sql);
int insertOne(String sql);
int updateOne(String sql);
int deleteOne(String sql);
}

View File

@ -80,6 +80,7 @@ public class BizCategoryServiceImpl implements IBizCategoryService {
lqw.eq(StringUtils.isNotBlank(bo.getCanFeedback()), BizCategory::getCanFeedback, bo.getCanFeedback());
lqw.eq(StringUtils.isNotBlank(bo.getCanReply()), BizCategory::getCanReply, bo.getCanReply());
lqw.eq(StringUtils.isNotBlank(bo.getCanShare()), BizCategory::getCanShare, bo.getCanShare());
lqw.eq(StringUtils.isNotBlank(bo.getCanInputPerson()), BizCategory::getCanInputPerson, bo.getCanInputPerson());
lqw.eq(StringUtils.isNotBlank(bo.getTemplateUrl()), BizCategory::getTemplateUrl, bo.getTemplateUrl());
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BizCategory::getStatus, bo.getStatus());
return lqw;

View File

@ -55,6 +55,7 @@ public class BizDutyServiceImpl implements IBizDutyService {
public BizDutyVo queryById(Long id){
BizDutyVo duty = baseMapper.selectVoById(id);
duty.setLeader(userMapper.selectById(duty.getLeaderId()));
duty.setChairman(userMapper.selectById(duty.getChairmanId()));
duty.setMonitor(userMapper.selectById(duty.getMonitorId()));
duty.setWatchkeeperList(userMapper.selectByIds(convertIds(duty.getWatchkeeperIds())));
return duty;
@ -107,6 +108,8 @@ public class BizDutyServiceImpl implements IBizDutyService {
lqw.like(StringUtils.isNotBlank(bo.getDeptName()), BizDuty::getDeptName, bo.getDeptName());
lqw.eq(bo.getLeaderId() != null, BizDuty::getLeaderId, bo.getLeaderId());
lqw.like(StringUtils.isNotBlank(bo.getLeaderName()), BizDuty::getLeaderName, bo.getLeaderName());
lqw.eq(bo.getChairmanId() != null, BizDuty::getChairmanId, bo.getChairmanId());
lqw.like(StringUtils.isNotBlank(bo.getChairmanName()), BizDuty::getChairmanName, bo.getChairmanName());
lqw.eq(bo.getMonitorId() != null, BizDuty::getMonitorId, bo.getMonitorId());
lqw.like(StringUtils.isNotBlank(bo.getMonitorName()), BizDuty::getMonitorName, bo.getMonitorName());
lqw.eq(StringUtils.isNotBlank(bo.getWatchkeeperIds()), BizDuty::getWatchkeeperIds, bo.getWatchkeeperIds());
@ -135,6 +138,7 @@ public class BizDutyServiceImpl implements IBizDutyService {
add.setDeptId(user.getDeptId());
add.setCreateUserId(user.getUserId());
add.setLeaderName(userService.selectNicknameById(add.getLeaderId()));
add.setChairmanName(userService.selectNicknameById(add.getChairmanId()));
add.setMonitorName(userService.selectNicknameById(add.getMonitorId()));
add.setWatchkeeperNames(userService.selectNicknameByIds(add.getWatchkeeperIds()));
add.setDeptName(user.getDeptName());
@ -156,9 +160,14 @@ public class BizDutyServiceImpl implements IBizDutyService {
@Override
public Boolean updateByBo(BizDutyBo bo) {
BizDuty update = MapstructUtils.convert(bo, BizDuty.class);
update.setLeaderName(userService.selectNicknameById(update.getLeaderId()));
update.setMonitorName(userService.selectNicknameById(update.getMonitorId()));
update.setWatchkeeperNames(userService.selectNicknameByIds(update.getWatchkeeperIds()));
if(update.getLeaderId()!=null)
update.setLeaderName(userService.selectNicknameById(update.getLeaderId()));
if(update.getChairmanId()!=null)
update.setChairmanName(userService.selectNicknameById(update.getChairmanId()));
if(update.getMonitorId()!=null)
update.setMonitorName(userService.selectNicknameById(update.getMonitorId()));
if(update.getWatchkeeperIds()!=null)
update.setWatchkeeperNames(userService.selectNicknameByIds(update.getWatchkeeperIds()));
// update.setDeptName(deptService.selectDeptNameByIds(update.getDeptId()));
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;

View File

@ -0,0 +1,175 @@
package org.dromara.biz.service.impl;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.utils.Helper;
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.satoken.utils.LoginHelper;
import org.springframework.stereotype.Service;
import org.dromara.biz.domain.bo.BizIcdsBulletinBo;
import org.dromara.biz.domain.vo.BizIcdsBulletinVo;
import org.dromara.biz.domain.BizIcdsBulletin;
import org.dromara.biz.mapper.BizIcdsBulletinMapper;
import org.dromara.biz.service.IBizIcdsBulletinService;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author ruansee
* @date 2025-12-15
*/
@RequiredArgsConstructor
@Service
public class BizIcdsBulletinServiceImpl implements IBizIcdsBulletinService {
private final BizIcdsBulletinMapper baseMapper;
/**
*
*
* @param id
* @return
*/
@Override
public BizIcdsBulletinVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<BizIcdsBulletinVo> queryPageList(BizIcdsBulletinBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BizIcdsBulletin> lqw = buildQueryWrapper(bo);
Page<BizIcdsBulletinVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<BizIcdsBulletinVo> queryList(BizIcdsBulletinBo bo) {
LambdaQueryWrapper<BizIcdsBulletin> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BizIcdsBulletin> buildQueryWrapper(BizIcdsBulletinBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BizIcdsBulletin> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BizIcdsBulletin::getId);
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), BizIcdsBulletin::getTitle, bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getTags()), BizIcdsBulletin::getTags, bo.getTags());
lqw.eq(StringUtils.isNotBlank(bo.getNo()), BizIcdsBulletin::getNo, bo.getNo());
lqw.eq(StringUtils.isNotBlank(bo.getContact()), BizIcdsBulletin::getContact, bo.getContact());
lqw.eq(StringUtils.isNotBlank(bo.getCause()), BizIcdsBulletin::getCause, bo.getCause());
lqw.eq(StringUtils.isNotBlank(bo.getOtherCause()), BizIcdsBulletin::getOtherCause, bo.getOtherCause());
lqw.eq(StringUtils.isNotBlank(bo.getLevel()), BizIcdsBulletin::getLevel, bo.getLevel());
lqw.eq(StringUtils.isNotBlank(bo.getDeathCount()), BizIcdsBulletin::getDeathCount, bo.getDeathCount());
lqw.eq(StringUtils.isNotBlank(bo.getInjuredCount()), BizIcdsBulletin::getInjuredCount, bo.getInjuredCount());
lqw.eq(StringUtils.isNotBlank(bo.getFileUrl()), BizIcdsBulletin::getFileUrl, bo.getFileUrl());
lqw.like(StringUtils.isNotBlank(bo.getFileName()), BizIcdsBulletin::getFileName, bo.getFileName());
lqw.eq(StringUtils.isNotBlank(bo.getContent()), BizIcdsBulletin::getContent, bo.getContent());
lqw.eq(bo.getReportTime() != null, BizIcdsBulletin::getReportTime, bo.getReportTime());
lqw.eq(bo.getReportUserId() != null, BizIcdsBulletin::getReportUserId, bo.getReportUserId());
lqw.like(StringUtils.isNotBlank(bo.getReportUserName()), BizIcdsBulletin::getReportUserName, bo.getReportUserName());
lqw.eq(StringUtils.isNotBlank(bo.getReportDeptId()), BizIcdsBulletin::getReportDeptId, bo.getReportDeptId());
lqw.like(StringUtils.isNotBlank(bo.getReportDeptName()), BizIcdsBulletin::getReportDeptName, bo.getReportDeptName());
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BizIcdsBulletin::getStatus, bo.getStatus());
lqw.eq(bo.getUpdateUserId() != null, BizIcdsBulletin::getUpdateUserId, bo.getUpdateUserId());
lqw.eq(bo.getIsSyn() != null, BizIcdsBulletin::getIsSyn, bo.getIsSyn());
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(BizIcdsBulletinBo bo) {
LoginUser user = LoginHelper.getLoginUser();
String deptid = Helper.NStr(user.getDeptId());
bo.setReportDeptId(deptid);
bo.setReportDeptName(user.getDeptName());
bo.setReportUserId(user.getUserId());
bo.setReportUserName(user.getNickname());
bo.setReportTime(new Date());
bo.setIsSyn(1L);
BizIcdsBulletin add = MapstructUtils.convert(bo, BizIcdsBulletin.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(BizIcdsBulletinBo bo) {
BizIcdsBulletin update = MapstructUtils.convert(bo, BizIcdsBulletin.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(BizIcdsBulletin entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean push(BizIcdsBulletinBo bo){
BizIcdsBulletin update = new BizIcdsBulletin(); //MapstructUtils.convert(bo, BizIcdsBulletin.class);
update.setId(bo.getId());
update.setIsSyn(2L);
return baseMapper.updateById(update) > 0;
}
}

View File

@ -0,0 +1,171 @@
package org.dromara.biz.service.impl;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.utils.Helper;
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.satoken.utils.LoginHelper;
import org.springframework.stereotype.Service;
import org.dromara.biz.domain.bo.BizIcdsDailyBo;
import org.dromara.biz.domain.vo.BizIcdsDailyVo;
import org.dromara.biz.domain.BizIcdsDaily;
import org.dromara.biz.mapper.BizIcdsDailyMapper;
import org.dromara.biz.service.IBizIcdsDailyService;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author ruansee
* @date 2025-12-15
*/
@RequiredArgsConstructor
@Service
public class BizIcdsDailyServiceImpl implements IBizIcdsDailyService {
private final BizIcdsDailyMapper baseMapper;
/**
*
*
* @param id
* @return
*/
@Override
public BizIcdsDailyVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<BizIcdsDailyVo> queryPageList(BizIcdsDailyBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BizIcdsDaily> lqw = buildQueryWrapper(bo);
Page<BizIcdsDailyVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<BizIcdsDailyVo> queryList(BizIcdsDailyBo bo) {
LambdaQueryWrapper<BizIcdsDaily> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BizIcdsDaily> buildQueryWrapper(BizIcdsDailyBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BizIcdsDaily> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BizIcdsDaily::getId);
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), BizIcdsDaily::getTitle, bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getTags()), BizIcdsDaily::getTags, bo.getTags());
lqw.eq(StringUtils.isNotBlank(bo.getNo()), BizIcdsDaily::getNo, bo.getNo());
lqw.eq(StringUtils.isNotBlank(bo.getContact()), BizIcdsDaily::getContact, bo.getContact());
lqw.eq(StringUtils.isNotBlank(bo.getFileUrl()), BizIcdsDaily::getFileUrl, bo.getFileUrl());
lqw.like(StringUtils.isNotBlank(bo.getFileName()), BizIcdsDaily::getFileName, bo.getFileName());
lqw.eq(StringUtils.isNotBlank(bo.getContent()), BizIcdsDaily::getContent, bo.getContent());
lqw.eq(bo.getReportTime() != null, BizIcdsDaily::getReportTime, bo.getReportTime());
lqw.eq(bo.getReportUserId() != null, BizIcdsDaily::getReportUserId, bo.getReportUserId());
lqw.like(StringUtils.isNotBlank(bo.getReportUserName()), BizIcdsDaily::getReportUserName, bo.getReportUserName());
lqw.eq(StringUtils.isNotBlank(bo.getReportDeptId()), BizIcdsDaily::getReportDeptId, bo.getReportDeptId());
lqw.like(StringUtils.isNotBlank(bo.getReportDeptName()), BizIcdsDaily::getReportDeptName, bo.getReportDeptName());
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BizIcdsDaily::getStatus, bo.getStatus());
lqw.eq(bo.getUpdateUserId() != null, BizIcdsDaily::getUpdateUserId, bo.getUpdateUserId());
lqw.eq(bo.getIsSyn() != null, BizIcdsDaily::getIsSyn, bo.getIsSyn());
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(BizIcdsDailyBo bo) {
LoginUser user = LoginHelper.getLoginUser();
String deptid = Helper.NStr(user.getDeptId());
bo.setReportDeptId(deptid);
bo.setReportDeptName(user.getDeptName());
bo.setReportUserId(user.getUserId());
bo.setReportUserName(user.getNickname());
bo.setReportTime(new Date());
bo.setIsSyn(1L);
BizIcdsDaily add = MapstructUtils.convert(bo, BizIcdsDaily.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(BizIcdsDailyBo bo) {
BizIcdsDaily update = MapstructUtils.convert(bo, BizIcdsDaily.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(BizIcdsDaily entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean push(BizIcdsDailyBo bo){
BizIcdsDaily update = new BizIcdsDaily(); // MapstructUtils.convert(bo, BizIcdsDaily.class);
update.setId(bo.getId());
update.setIsSyn(2L);
return baseMapper.updateById(update) > 0;
}
}

View File

@ -0,0 +1,154 @@
package org.dromara.biz.service.impl;
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.biz.domain.bo.BizIcdsNoticeBo;
import org.dromara.biz.domain.vo.BizIcdsNoticeVo;
import org.dromara.biz.domain.BizIcdsNotice;
import org.dromara.biz.mapper.BizIcdsNoticeMapper;
import org.dromara.biz.service.IBizIcdsNoticeService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author ruansee
* @date 2025-12-15
*/
@RequiredArgsConstructor
@Service
public class BizIcdsNoticeServiceImpl implements IBizIcdsNoticeService {
private final BizIcdsNoticeMapper baseMapper;
/**
*
*
* @param id
* @return
*/
@Override
public BizIcdsNoticeVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<BizIcdsNoticeVo> queryPageList(BizIcdsNoticeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BizIcdsNotice> lqw = buildQueryWrapper(bo);
Page<BizIcdsNoticeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<BizIcdsNoticeVo> queryList(BizIcdsNoticeBo bo) {
LambdaQueryWrapper<BizIcdsNotice> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BizIcdsNotice> buildQueryWrapper(BizIcdsNoticeBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BizIcdsNotice> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BizIcdsNotice::getId);
lqw.eq(StringUtils.isNotBlank(bo.getOldId()), BizIcdsNotice::getOldId, bo.getOldId());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), BizIcdsNotice::getTitle, bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getFileUrl()), BizIcdsNotice::getFileUrl, bo.getFileUrl());
lqw.like(StringUtils.isNotBlank(bo.getFileName()), BizIcdsNotice::getFileName, bo.getFileName());
lqw.eq(StringUtils.isNotBlank(bo.getContent()), BizIcdsNotice::getContent, bo.getContent());
lqw.eq(bo.getSendTime() != null, BizIcdsNotice::getSendTime, bo.getSendTime());
lqw.like(StringUtils.isNotBlank(bo.getSendUserName()), BizIcdsNotice::getSendUserName, bo.getSendUserName());
lqw.like(StringUtils.isNotBlank(bo.getSendDeptName()), BizIcdsNotice::getSendDeptName, bo.getSendDeptName());
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BizIcdsNotice::getStatus, bo.getStatus());
lqw.eq(bo.getIsSyn() != null, BizIcdsNotice::getIsSyn, bo.getIsSyn());
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(BizIcdsNoticeBo bo) {
BizIcdsNotice add = MapstructUtils.convert(bo, BizIcdsNotice.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(BizIcdsNoticeBo bo) {
BizIcdsNotice update = MapstructUtils.convert(bo, BizIcdsNotice.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(BizIcdsNotice entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean sign(BizIcdsNoticeBo bo){
BizIcdsNotice update = new BizIcdsNotice(); // MapstructUtils.convert(bo, BizIcdsNotice.class);
update.setId(bo.getId());
update.setStatus("已签收");
update.setIsSyn(2L);
return baseMapper.updateById(update) > 0;
}
}

View File

@ -1,11 +1,14 @@
package org.dromara.biz.service.impl;
import org.dromara.biz.domain.BizReportFile;
import org.dromara.biz.domain.BizReportPerson;
import org.dromara.biz.domain.BizReportReceiver;
import org.dromara.biz.domain.vo.BizReportReceiverVo;
import org.dromara.biz.mapper.BizReportFileMapper;
import org.dromara.biz.mapper.BizReportPersonMapper;
import org.dromara.biz.mapper.BizReportReceiverMapper;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.enums.ReportInfoStatusEnum;
import org.dromara.common.core.utils.Helper;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -16,7 +19,13 @@ 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.common.sse.dto.SseMessageDto;
import org.dromara.common.sse.utils.SseMessageUtils;
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.mapper.SysDeptMapper;
import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.service.ISysUserService;
import org.springframework.stereotype.Service;
import org.dromara.biz.domain.bo.BizReportInfoBo;
import org.dromara.biz.domain.vo.BizReportInfoVo;
@ -25,6 +34,8 @@ import org.dromara.biz.mapper.BizReportInfoMapper;
import org.dromara.biz.service.IBizReportInfoService;
import java.util.*;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* Service
@ -42,8 +53,14 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
private final BizReportReceiverMapper receiverMapper;
private final BizReportPersonMapper personMapper;
private final SysDeptMapper deptMapper;
private final ISysUserService userService;
private final ScheduledExecutorService scheduledExecutorService;
/**
*
*
@ -70,6 +87,11 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
List<BizReportFile> files = fileMapper.selectList(lqwf);
info.setFiles(files);
LambdaQueryWrapper<BizReportPerson> lqwp = Wrappers.lambdaQuery();
lqwp.eq(BizReportPerson::getReportId, id);
List<BizReportPerson> persons = personMapper.selectList(lqwp);
info.setPersonList(persons);
return info;
}
@ -105,12 +127,13 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
lqw.orderByDesc(BizReportInfo::getReportTime);
lqw.like(StringUtils.isNotBlank(bo.getTitle()), BizReportInfo::getTitle, bo.getTitle());
lqw.eq(bo.getCategoryId() != null, BizReportInfo::getCategoryId, bo.getCategoryId());
lqw.like(StringUtils.isNotBlank(bo.getTags()), BizReportInfo::getTags, bo.getTags());
lqw.eq(StringUtils.isNotBlank(bo.getChao()), BizReportInfo::getChao, bo.getChao());
lqw.eq(StringUtils.isNotBlank(bo.getLdps()), BizReportInfo::getLdps, bo.getLdps());
lqw.eq(StringUtils.isNotBlank(bo.getQh()), BizReportInfo::getQh, bo.getQh());
lqw.eq(StringUtils.isNotBlank(bo.getOldTable()), BizReportInfo::getOldTable, bo.getOldTable());
lqw.eq(StringUtils.isNotBlank(bo.getOldType()), BizReportInfo::getOldType, bo.getOldType());
lqw.eq(bo.getOldId() != null, BizReportInfo::getOldId, bo.getOldId());
// lqw.eq(StringUtils.isNotBlank(bo.getOldType()), BizReportInfo::getOldType, bo.getOldType());
// lqw.eq(bo.getOldId() != null, BizReportInfo::getOldId, bo.getOldId());
lqw.eq(StringUtils.isNotBlank(bo.getUrl()), BizReportInfo::getUrl, bo.getUrl());
lqw.eq(StringUtils.isNotBlank(bo.getFileUrl()), BizReportInfo::getFileUrl, bo.getFileUrl());
lqw.like(StringUtils.isNotBlank(bo.getFileName()), BizReportInfo::getFileName, bo.getFileName());
@ -126,17 +149,23 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
lqw.eq(bo.getUpdateUserId() != null, BizReportInfo::getUpdateUserId, bo.getUpdateUserId());
String table = Helper.NStr(bo.getOldTable());
String dcl = Helper.NStr(bo.getOldType());
LoginUser user = LoginHelper.getLoginUser();
if (table.equals("xxcl")){
lqw.and(w-> {
if (dcl.equals("dcl")){
lqw.exists("select id from biz_report_receiver where dept_id = '" + Helper.NStr(user.getDeptId()) + "' and is_sign = 0 and report_id = v.id ");
}else {
if (table.equals("xxcl")) {
lqw.and(w -> {
// w.eq(user.getDeptId()!=null, BizReportInfo::getReportDeptId, user.getDeptId());
w.likeRight(BizReportInfo::getReportDeptId, Helper.PrefixDeptid(user.getDeptId()));
w.or(ww->{
ww.exists("select id from biz_report_receiver where dept_id = '"+ Helper.NStr(user.getDeptId()) +" and report_id = v.id '");
w.likeRight(BizReportInfo::getReportDeptId, Helper.PrefixDeptid(user.getDeptId()));
w.or(ww -> {
ww.exists("select id from biz_report_receiver where dept_id = '" + Helper.NStr(user.getDeptId()) + "' and report_id = v.id ");
});
});
});
} else if (table.equals("xxbs")){
lqw.likeRight(BizReportInfo::getReportDeptId, Helper.PrefixDeptid(user.getDeptId()));
} else if (table.equals("xxbs")) {
lqw.likeRight(BizReportInfo::getReportDeptId, Helper.PrefixDeptid(user.getDeptId()));
}
}
return lqw;
}
@ -149,6 +178,13 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
*/
@Override
public Boolean insertByBo(BizReportInfoBo bo) {
LoginUser user = LoginHelper.getLoginUser();
String deptid = Helper.NStr(user.getDeptId());
bo.setReportDeptId(deptid);
bo.setReportDeptName(user.getDeptName());
bo.setReportUserId(user.getUserId());
bo.setReportUserName(user.getNickname());
bo.setReportTime(new Date());
BizReportInfo add = MapstructUtils.convert(bo, BizReportInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
@ -164,16 +200,62 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
receiver.setDeptName(deptMapper.selectVoById(deptId).getDeptName());
receiverMapper.insert(receiver);
}
}else{
if (bo.getOldTable().equals("xxbs")){
SysDept dept = deptMapper.selectById(deptid);
String sjdept = dept.getParentId(); //deptid.substring(0, 4)+"00000000";
BizReportReceiver receiver = new BizReportReceiver();
receiver.setReportId(bo.getId());
receiver.setDeptId(sjdept);
receiver.setDeptName(deptMapper.selectVoById(sjdept).getDeptName());
bo.setReceiverDeptIds(new String[]{ sjdept });
receiverMapper.insert(receiver);
}
}
// 插入附件表
if (bo.getFiles()!=null && bo.getFiles().size()>0){
for (BizReportFile file : bo.getFiles()) {
file.setId(null);
file.setReportId(bo.getId());
fileMapper.insert(file);
}
}
if (bo.getPersonList()!=null && bo.getPersonList().size()>0){
for (BizReportPerson person : bo.getPersonList()) {
person.setReportId(bo.getId());
person.setCjrid(user.getUserId());
person.setCjrjh(user.getUsername());
person.setCjrxm(user.getNickname());
person.setCjrjgdwdm(user.getWorkDeptId());
person.setCjrjgdw(user.getWorkDeptName());
person.setCjsj(new Date());
person.setGxrid(user.getUserId());
person.setGxrjh(user.getUsername());
person.setGxrxm(user.getNickname());
person.setGxrjgdwdm(user.getWorkDeptId());
person.setGxrjgdw(user.getWorkDeptName());
person.setGxsj(new Date());
personMapper.insert(person);
}
}
// 发送待办消息提醒
if(bo.getReceiverDeptIds()!=null && bo.getReceiverDeptIds().length>0){
SysUserBo userBo = new SysUserBo();
userBo.setDeptIds(bo.getReceiverDeptIds());
List<Long> userIds = userService.selectUserIdList(userBo);
scheduledExecutorService.schedule(() -> {
SseMessageDto dto = new SseMessageDto();
dto.setMessage("您有新的待办信息,请前往查看!");
dto.setType("todo");
dto.setUserIds(userIds);
SseMessageUtils.publishMessage(dto);
}, 5, TimeUnit.SECONDS);
}
}
return flag;
}
@ -187,7 +269,9 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
*/
@Override
public Boolean updateByBo(BizReportInfoBo bo) {
LoginUser user = LoginHelper.getLoginUser();
BizReportInfo update = MapstructUtils.convert(bo, BizReportInfo.class);
update.setStatus(ReportInfoStatusEnum.WAITING_SIGN.getStatus());
validEntityBeforeSave(update);
boolean flag = baseMapper.updateById(update) > 0;
@ -220,15 +304,42 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
}
}
// 插入前先删除之前记录
fileMapper.deleteByReportId(bo.getId());
// 插入附件表
if (bo.getFiles()!=null && bo.getFiles().size()>0){
for (BizReportFile file : bo.getFiles()) {
if (Helper.FInt(file.getId())>0) continue;
else {
// if (Helper.FInt(file.getId())>0) continue;
// else {
file.setReportId(bo.getId());
fileMapper.insert(file);
// }
}
}
if (bo.getPersonList()!=null && bo.getPersonList().size()>0){
for (BizReportPerson person : bo.getPersonList()) {
person.setReportId(bo.getId());
person.setGxrid(user.getUserId());
person.setGxrjh(user.getUsername());
person.setGxrxm(user.getNickname());
person.setGxrjgdwdm(user.getWorkDeptId());
person.setGxrjgdw(user.getWorkDeptName());
person.setGxsj(new Date());
if (Helper.FInt(person.getId())>0){
personMapper.updateById(person);
}else{
person.setCjrid(user.getUserId());
person.setCjrjh(user.getUsername());
person.setCjrxm(user.getNickname());
person.setCjrjgdwdm(user.getWorkDeptId());
person.setCjrjgdw(user.getWorkDeptName());
person.setCjsj(new Date());
personMapper.insert(person);
}
}
}
}
@ -256,4 +367,25 @@ public class BizReportInfoServiceImpl implements IBizReportInfoService {
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean back(BizReportInfoBo bo) {
LoginUser user = LoginHelper.getLoginUser();
BizReportInfo update = MapstructUtils.convert(bo, BizReportInfo.class);
update.setStatus(ReportInfoStatusEnum.BACK.getStatus());
validEntityBeforeSave(update);
boolean flag = baseMapper.updateById(update) > 0;
if (flag){
}
return flag;
}
}

View File

@ -0,0 +1,203 @@
package org.dromara.biz.service.impl;
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.biz.domain.bo.BizReportPersonBo;
import org.dromara.biz.domain.vo.BizReportPersonVo;
import org.dromara.biz.domain.BizReportPerson;
import org.dromara.biz.mapper.BizReportPersonMapper;
import org.dromara.biz.service.IBizReportPersonService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author ruansee
* @date 2025-12-06
*/
@RequiredArgsConstructor
@Service
public class BizReportPersonServiceImpl implements IBizReportPersonService {
private final BizReportPersonMapper baseMapper;
/**
*
*
* @param id
* @return
*/
@Override
public BizReportPersonVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<BizReportPersonVo> queryPageList(BizReportPersonBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BizReportPerson> lqw = buildQueryWrapper(bo);
Page<BizReportPersonVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<BizReportPersonVo> queryList(BizReportPersonBo bo) {
LambdaQueryWrapper<BizReportPerson> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BizReportPerson> buildQueryWrapper(BizReportPersonBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BizReportPerson> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BizReportPerson::getId);
lqw.eq(bo.getReportId() != null, BizReportPerson::getReportId, bo.getReportId());
lqw.eq(StringUtils.isNotBlank(bo.getXm()), BizReportPerson::getXm, bo.getXm());
lqw.eq(StringUtils.isNotBlank(bo.getZjlx()), BizReportPerson::getZjlx, bo.getZjlx());
lqw.eq(StringUtils.isNotBlank(bo.getZjhm()), BizReportPerson::getZjhm, bo.getZjhm());
lqw.eq(StringUtils.isNotBlank(bo.getSfzh()), BizReportPerson::getSfzh, bo.getSfzh());
lqw.eq(StringUtils.isNotBlank(bo.getCsrq()), BizReportPerson::getCsrq, bo.getCsrq());
lqw.eq(StringUtils.isNotBlank(bo.getXb()), BizReportPerson::getXb, bo.getXb());
lqw.eq(StringUtils.isNotBlank(bo.getMz()), BizReportPerson::getMz, bo.getMz());
lqw.eq(StringUtils.isNotBlank(bo.getXl()), BizReportPerson::getXl, bo.getXl());
lqw.eq(StringUtils.isNotBlank(bo.getGj()), BizReportPerson::getGj, bo.getGj());
lqw.eq(StringUtils.isNotBlank(bo.getJg()), BizReportPerson::getJg, bo.getJg());
lqw.eq(StringUtils.isNotBlank(bo.getHyzk()), BizReportPerson::getHyzk, bo.getHyzk());
lqw.eq(StringUtils.isNotBlank(bo.getByzk()), BizReportPerson::getByzk, bo.getByzk());
lqw.eq(StringUtils.isNotBlank(bo.getXzdqh()), BizReportPerson::getXzdqh, bo.getXzdqh());
lqw.eq(StringUtils.isNotBlank(bo.getXzdpcs()), BizReportPerson::getXzdpcs, bo.getXzdpcs());
lqw.eq(StringUtils.isNotBlank(bo.getXzdxz()), BizReportPerson::getXzdxz, bo.getXzdxz());
lqw.eq(StringUtils.isNotBlank(bo.getHjdqh()), BizReportPerson::getHjdqh, bo.getHjdqh());
lqw.eq(StringUtils.isNotBlank(bo.getHjdpcs()), BizReportPerson::getHjdpcs, bo.getHjdpcs());
lqw.eq(StringUtils.isNotBlank(bo.getHjdxz()), BizReportPerson::getHjdxz, bo.getHjdxz());
lqw.eq(StringUtils.isNotBlank(bo.getPhone()), BizReportPerson::getPhone, bo.getPhone());
lqw.eq(StringUtils.isNotBlank(bo.getWxhm()), BizReportPerson::getWxhm, bo.getWxhm());
lqw.eq(StringUtils.isNotBlank(bo.getCph()), BizReportPerson::getCph, bo.getCph());
lqw.eq(StringUtils.isNotBlank(bo.getZpdz()), BizReportPerson::getZpdz, bo.getZpdz());
lqw.eq(StringUtils.isNotBlank(bo.getXmpy()), BizReportPerson::getXmpy, bo.getXmpy());
lqw.eq(StringUtils.isNotBlank(bo.getYwxm()), BizReportPerson::getYwxm, bo.getYwxm());
lqw.eq(StringUtils.isNotBlank(bo.getQq()), BizReportPerson::getQq, bo.getQq());
lqw.eq(StringUtils.isNotBlank(bo.getHyd()), BizReportPerson::getHyd, bo.getHyd());
lqw.eq(StringUtils.isNotBlank(bo.getRyjb()), BizReportPerson::getRyjb, bo.getRyjb());
lqw.eq(StringUtils.isNotBlank(bo.getSfrk()), BizReportPerson::getSfrk, bo.getSfrk());
lqw.eq(StringUtils.isNotBlank(bo.getRyjs()), BizReportPerson::getRyjs, bo.getRyjs());
lqw.eq(StringUtils.isNotBlank(bo.getRylb()), BizReportPerson::getRylb, bo.getRylb());
lqw.eq(StringUtils.isNotBlank(bo.getRyxl()), BizReportPerson::getRyxl, bo.getRyxl());
lqw.eq(StringUtils.isNotBlank(bo.getFxdj()), BizReportPerson::getFxdj, bo.getFxdj());
lqw.eq(StringUtils.isNotBlank(bo.getTzje()), BizReportPerson::getTzje, bo.getTzje());
lqw.eq(StringUtils.isNotBlank(bo.getSsje()), BizReportPerson::getSsje, bo.getSsje());
lqw.eq(StringUtils.isNotBlank(bo.getJksje()), BizReportPerson::getJksje, bo.getJksje());
lqw.eq(StringUtils.isNotBlank(bo.getTzpt()), BizReportPerson::getTzpt, bo.getTzpt());
lqw.eq(StringUtils.isNotBlank(bo.getSfptyg()), BizReportPerson::getSfptyg, bo.getSfptyg());
lqw.eq(StringUtils.isNotBlank(bo.getJbsq()), BizReportPerson::getJbsq, bo.getJbsq());
lqw.eq(StringUtils.isNotBlank(bo.getSsqt()), BizReportPerson::getSsqt, bo.getSsqt());
lqw.eq(StringUtils.isNotBlank(bo.getWxq()), BizReportPerson::getWxq, bo.getWxq());
lqw.eq(StringUtils.isNotBlank(bo.getQqq()), BizReportPerson::getQqq, bo.getQqq());
lqw.eq(StringUtils.isNotBlank(bo.getGkdwdm()), BizReportPerson::getGkdwdm, bo.getGkdwdm());
lqw.eq(StringUtils.isNotBlank(bo.getGkdwmc()), BizReportPerson::getGkdwmc, bo.getGkdwmc());
lqw.eq(StringUtils.isNotBlank(bo.getGkrjh()), BizReportPerson::getGkrjh, bo.getGkrjh());
lqw.eq(StringUtils.isNotBlank(bo.getGkrxm()), BizReportPerson::getGkrxm, bo.getGkrxm());
lqw.eq(StringUtils.isNotBlank(bo.getGkrsjh()), BizReportPerson::getGkrsjh, bo.getGkrsjh());
lqw.eq(StringUtils.isNotBlank(bo.getWkzt()), BizReportPerson::getWkzt, bo.getWkzt());
lqw.eq(StringUtils.isNotBlank(bo.getGphcdwdm()), BizReportPerson::getGphcdwdm, bo.getGphcdwdm());
lqw.eq(StringUtils.isNotBlank(bo.getGphcdwmc()), BizReportPerson::getGphcdwmc, bo.getGphcdwmc());
lqw.eq(StringUtils.isNotBlank(bo.getGpfkyy()), BizReportPerson::getGpfkyy, bo.getGpfkyy());
lqw.eq(StringUtils.isNotBlank(bo.getWfhcyy()), BizReportPerson::getWfhcyy, bo.getWfhcyy());
lqw.eq(StringUtils.isNotBlank(bo.getSzdlx()), BizReportPerson::getSzdlx, bo.getSzdlx());
lqw.eq(StringUtils.isNotBlank(bo.getSzdxzqh()), BizReportPerson::getSzdxzqh, bo.getSzdxzqh());
lqw.eq(StringUtils.isNotBlank(bo.getGzqk()), BizReportPerson::getGzqk, bo.getGzqk());
lqw.eq(StringUtils.isNotBlank(bo.getFileUrl()), BizReportPerson::getFileUrl, bo.getFileUrl());
lqw.like(StringUtils.isNotBlank(bo.getFileName()), BizReportPerson::getFileName, bo.getFileName());
lqw.eq(bo.getCjsj() != null, BizReportPerson::getCjsj, bo.getCjsj());
lqw.eq(bo.getGxsj() != null, BizReportPerson::getGxsj, bo.getGxsj());
lqw.eq(bo.getCjrid() != null, BizReportPerson::getCjrid, bo.getCjrid());
lqw.eq(StringUtils.isNotBlank(bo.getCjrxm()), BizReportPerson::getCjrxm, bo.getCjrxm());
lqw.eq(StringUtils.isNotBlank(bo.getCjrjh()), BizReportPerson::getCjrjh, bo.getCjrjh());
lqw.eq(StringUtils.isNotBlank(bo.getCjrjgdw()), BizReportPerson::getCjrjgdw, bo.getCjrjgdw());
lqw.eq(StringUtils.isNotBlank(bo.getCjrjgdwdm()), BizReportPerson::getCjrjgdwdm, bo.getCjrjgdwdm());
lqw.eq(bo.getGxrid() != null, BizReportPerson::getGxrid, bo.getGxrid());
lqw.eq(StringUtils.isNotBlank(bo.getGxrxm()), BizReportPerson::getGxrxm, bo.getGxrxm());
lqw.eq(StringUtils.isNotBlank(bo.getGxrjh()), BizReportPerson::getGxrjh, bo.getGxrjh());
lqw.eq(StringUtils.isNotBlank(bo.getGxrjgdw()), BizReportPerson::getGxrjgdw, bo.getGxrjgdw());
lqw.eq(StringUtils.isNotBlank(bo.getGxrjgdwdm()), BizReportPerson::getGxrjgdwdm, bo.getGxrjgdwdm());
lqw.eq(StringUtils.isNotBlank(bo.getCzdwdm()), BizReportPerson::getCzdwdm, bo.getCzdwdm());
lqw.eq(StringUtils.isNotBlank(bo.getCzdw()), BizReportPerson::getCzdw, bo.getCzdw());
lqw.eq(StringUtils.isNotBlank(bo.getFxpg()), BizReportPerson::getFxpg, bo.getFxpg());
lqw.eq(StringUtils.isNotBlank(bo.getFjxs()), BizReportPerson::getFjxs, bo.getFjxs());
lqw.eq(StringUtils.isNotBlank(bo.getSfgp()), BizReportPerson::getSfgp, bo.getSfgp());
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(BizReportPersonBo bo) {
BizReportPerson add = MapstructUtils.convert(bo, BizReportPerson.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(BizReportPersonBo bo) {
BizReportPerson update = MapstructUtils.convert(bo, BizReportPerson.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(BizReportPerson entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -1,6 +1,10 @@
package org.dromara.biz.service.impl;
import org.dromara.biz.domain.BizReportInfo;
import org.dromara.biz.domain.BizReportReply;
import org.dromara.biz.mapper.BizReportInfoMapper;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.enums.ReportInfoStatusEnum;
import org.dromara.common.core.utils.Helper;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -34,6 +38,7 @@ import java.util.Collection;
public class BizReportReceiverServiceImpl implements IBizReportReceiverService {
private final BizReportReceiverMapper baseMapper;
private final BizReportInfoMapper reportInfoMapper;
/**
*
@ -169,6 +174,30 @@ public class BizReportReceiverServiceImpl implements IBizReportReceiverService {
bo.setSignTime(new Date());
BizReportReceiver update = MapstructUtils.convert(bo, BizReportReceiver.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
int flag = baseMapper.updateById(update);
if (flag > 0){
LambdaQueryWrapper<BizReportReceiver> lqw = new LambdaQueryWrapper<>();
lqw.eq(BizReportReceiver::getReportId, bo.getReportId());
lqw.eq(BizReportReceiver::getIsSign, 0);
Long notSignCount = baseMapper.selectCount(lqw);
BizReportInfo info = new BizReportInfo();
info.setId(bo.getReportId());
if (Helper.FInt(notSignCount)>0)
info.setStatus(ReportInfoStatusEnum.ANY_SIGN.getStatus());
else {
LambdaQueryWrapper<BizReportReceiver> lqw2 = new LambdaQueryWrapper<>();
lqw2.eq(BizReportReceiver::getReportId, bo.getReportId());
lqw2.eq(BizReportReceiver::getIsFeedback, 1);
Long replyCount = baseMapper.selectCount(lqw2);
if (replyCount>0)
info.setStatus(ReportInfoStatusEnum.ANY_REPLY.getStatus());
else
info.setStatus(ReportInfoStatusEnum.WAITING_REPLY.getStatus());
}
reportInfoMapper.updateById(info);
}
return flag > 0;
}
}

View File

@ -1,10 +1,14 @@
package org.dromara.biz.service.impl;
import org.dromara.biz.domain.BizReportInfo;
import org.dromara.biz.domain.BizReportReceiver;
import org.dromara.biz.domain.bo.BizReportReceiverBo;
import org.dromara.biz.domain.vo.BizReportReceiverVo;
import org.dromara.biz.mapper.BizReportInfoMapper;
import org.dromara.biz.mapper.BizReportReceiverMapper;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.enums.ReportInfoStatusEnum;
import org.dromara.common.core.utils.Helper;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -37,6 +41,7 @@ public class BizReportReplyServiceImpl implements IBizReportReplyService {
private final BizReportReplyMapper baseMapper;
private final BizReportReceiverMapper receiverMapper;
private final BizReportInfoMapper reportInfoMapper;
/**
*
@ -116,6 +121,20 @@ public class BizReportReplyServiceImpl implements IBizReportReplyService {
sbo.setIsFeedback(true);
receiverMapper.updateById(sbo);
}
BizReportInfo info = new BizReportInfo();
info.setId(bo.getReportId());
LambdaQueryWrapper<BizReportReceiver> lqw2 = new LambdaQueryWrapper<>();
lqw2.eq(BizReportReceiver::getReportId, bo.getReportId());
lqw2.eq(BizReportReceiver::getIsFeedback, 0);
Long replyCount = receiverMapper.selectCount(lqw2);
if (replyCount>0)
info.setStatus(ReportInfoStatusEnum.ANY_REPLY.getStatus());
else
info.setStatus(ReportInfoStatusEnum.REPLIED.getStatus());
reportInfoMapper.updateById(info);
}
return flag;
}

View File

@ -0,0 +1,141 @@
package org.dromara.biz.service.impl;
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.biz.domain.bo.BizStatCateBo;
import org.dromara.biz.domain.vo.BizStatCateVo;
import org.dromara.biz.domain.BizStatCate;
import org.dromara.biz.mapper.BizStatCateMapper;
import org.dromara.biz.service.IBizStatCateService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author ruansee
* @date 2025-12-01
*/
@RequiredArgsConstructor
@Service
public class BizStatCateServiceImpl implements IBizStatCateService {
private final BizStatCateMapper baseMapper;
@Override
public List<BizStatCateVo> statByDate(BizStatCateBo bo){
return baseMapper.statByDate(bo);
}
/**
*
*
* @param id
* @return
*/
@Override
public BizStatCateVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<BizStatCateVo> queryPageList(BizStatCateBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<BizStatCate> lqw = buildQueryWrapper(bo);
Page<BizStatCateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<BizStatCateVo> queryList(BizStatCateBo bo) {
LambdaQueryWrapper<BizStatCate> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<BizStatCate> buildQueryWrapper(BizStatCateBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<BizStatCate> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(BizStatCate::getId);
lqw.eq(bo.getStatDate() != null, BizStatCate::getStatDate, bo.getStatDate());
lqw.eq(bo.getCateId() != null, BizStatCate::getCateId, bo.getCateId());
lqw.like(StringUtils.isNotBlank(bo.getCateName()), BizStatCate::getCateName, bo.getCateName());
lqw.eq(bo.getReportCount() != null, BizStatCate::getReportCount, bo.getReportCount());
lqw.eq(bo.getSignCount() != null, BizStatCate::getSignCount, bo.getSignCount());
lqw.eq(bo.getReplyCount() != null, BizStatCate::getReplyCount, bo.getReplyCount());
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(BizStatCateBo bo) {
BizStatCate add = MapstructUtils.convert(bo, BizStatCate.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(BizStatCateBo bo) {
BizStatCate update = MapstructUtils.convert(bo, BizStatCate.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(BizStatCate entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -0,0 +1,48 @@
package org.dromara.biz.service.impl;
import lombok.RequiredArgsConstructor;
import org.dromara.biz.mapper.CustomSQLMapper;
import org.dromara.biz.service.ICustomSQLService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* SQL Service
*
* @author YIN
* @date 2025-05-21
*/
@RequiredArgsConstructor
@Service
public class CustomSQLServiceImpl implements ICustomSQLService {
private final CustomSQLMapper customSQLMapper;
@Override
public Map selectOne(String sql){
return customSQLMapper.selectOne(sql);
}
@Override
public List<Map> selectList(String sql){
return customSQLMapper.selectList(sql);
}
@Override
public int insertOne(String sql){
return customSQLMapper.insertOne(sql);
}
@Override
public int updateOne(String sql){
return customSQLMapper.updateOne(sql);
}
@Override
public int deleteOne(String sql){
return customSQLMapper.deleteOne(sql);
}
}

View File

@ -2,6 +2,8 @@ package org.dromara.system.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
import org.dromara.biz.service.ICustomSQLService;
import org.dromara.common.core.utils.Helper;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
*
@ -35,6 +38,33 @@ public class SysDictDataController extends BaseController {
private final ISysDictDataService dictDataService;
private final ISysDictTypeService dictTypeService;
private final ICustomSQLService customSQLService;
@GetMapping(value = "/causeList")
public R<List<Map>> causeList() {
List<Map> list = customSQLService.selectList("select * from sys_dict_tree where type = '案由' order by parent_id, sort ");
List<Map> result = new ArrayList<>();
if (list!=null && list.size()>0){
for (Map item : list) {
int id = Helper.FInt(item.get("id"));
int pid = Helper.FInt(item.get("parent_id"));
if (pid == 0){
List<Map> children = new ArrayList<>();
for (Map son : list) {
int spid = Helper.FInt(son.get("parent_id"));
if (spid == id){
children.add(son);
}
}
item.put("children", children);
result.add(item);
}else continue;
}
}
return R.ok(result);
}
/**
*
*/

View File

@ -161,7 +161,7 @@ public class SysRoleController extends BaseController {
/**
*
*/
@SaCheckPermission("system:role:list")
// @SaCheckPermission("system:role:list")
@GetMapping("/authUser/allocatedList")
public TableDataInfo<SysUserVo> allocatedList(SysUserBo user, PageQuery pageQuery) {
return userService.selectAllocatedList(user, pageQuery);
@ -170,7 +170,7 @@ public class SysRoleController extends BaseController {
/**
*
*/
@SaCheckPermission("system:role:list")
// @SaCheckPermission("system:role:list")
@GetMapping("/authUser/unallocatedList")
public TableDataInfo<SysUserVo> unallocatedList(SysUserBo user, PageQuery pageQuery) {
return userService.selectUnallocatedList(user, pageQuery);

View File

@ -282,7 +282,7 @@ public class SysUserController extends BaseController {
/**
*
*/
@SaCheckPermission("system:user:list")
// @SaCheckPermission("system:user:list")
@GetMapping("/deptTree")
public R<List<Tree<String>>> deptTree(SysDeptBo dept) {
return R.ok(deptService.selectDeptTreeList(dept));
@ -291,7 +291,7 @@ public class SysUserController extends BaseController {
/**
*
*/
@SaCheckPermission("system:user:list")
// @SaCheckPermission("system:user:list")
@GetMapping("/list/dept/{deptId}")
public R<List<SysUserVo>> listByDept(@PathVariable @NotNull String deptId) {
return R.ok(userService.selectUserListByDept(deptId));

View File

@ -120,4 +120,10 @@ public class SysUserBo extends BaseEntity {
return SystemConstants.SUPER_ADMIN_ID.equals(this.userId);
}
/**
* ID
*/
private String[] deptIds;
}

View File

@ -9,6 +9,7 @@ import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysUserExportVo;
import org.dromara.system.domain.vo.SysUserVo;

View File

@ -26,6 +26,8 @@ public interface ISysUserService {
*/
List<SysUserExportVo> selectUserExportList(SysUserBo user);
List<Long> selectUserIdList(SysUserBo user);
/**
*
*

View File

@ -74,6 +74,28 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
return baseMapper.selectUserExportList(this.buildQueryWrapper(user));
}
/**
*
*
* @param user
* @return
*/
@Override
public List<Long> selectUserIdList(SysUserBo user) {
QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", SystemConstants.NORMAL)
.and(ObjectUtil.isNotNull(user.getDeptIds()) && user.getDeptIds().length>0 , w -> {
List<String> ids = new ArrayList<>();
for (String deptid : user.getDeptIds()) {
ids.add(deptid);
}
w.in("u.dept_id", ids);
})
.orderByAsc("u.user_id");
List<SysUserVo> list = baseMapper.selectUserList(wrapper);
return StreamUtils.toList(list, SysUserVo::getUserId);
}
private Wrapper<SysUser> buildQueryWrapper(SysUserBo user) {
Map<String, Object> params = user.getParams();
QueryWrapper<SysUser> wrapper = Wrappers.query();
@ -94,7 +116,14 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
List<String> ids = StreamUtils.toList(deptList, SysDept::getDeptId);
ids.add(user.getDeptId());
w.in("u.dept_id", ids);
}).orderByAsc("u.user_id");
}).and(ObjectUtil.isNotNull(user.getDeptIds()) && user.getDeptIds().length>0 , w -> {
List<String> ids = new ArrayList<>();
for (String deptid : user.getDeptIds()) {
ids.add(deptid);
}
w.in("u.dept_id", ids);
})
.orderByAsc("u.user_id");
if (StringUtils.isNotBlank(user.getExcludeUserIds())) {
wrapper.notIn("u.user_id", StringUtils.splitTo(user.getExcludeUserIds(), Convert::toLong));
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.biz.mapper.BizIcdsBulletinMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.biz.mapper.BizIcdsDailyMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.biz.mapper.BizIcdsNoticeMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.biz.mapper.BizReportPersonMapper">
</mapper>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.biz.mapper.BizStatCateMapper">
<resultMap type="org.dromara.biz.domain.vo.BizStatCateVo" id="BizStatCateResult">
<id property="id" column="id"/>
</resultMap>
<select id="statByCateId" parameterType="Long" resultMap="BizStatCateResult">
select * from
(SELECT ifnull(count(id), 0) report_count FROM `biz_report_info`
where create_time &gt;= CURDATE() AND create_time &lt; CURDATE() + INTERVAL 1 DAY and category_id = #{cateId}) report,
(select ifnull(count(1), 0) sign_count from biz_report_receiver r left join biz_report_info i on r.report_id = i.id
where sign_time &gt;= CURDATE() AND sign_time &lt; CURDATE() + INTERVAL 1 DAY and category_id = #{cateId}) sign,
(select ifnull(count(1), 0) reply_count from biz_report_reply r left join biz_report_info i on r.report_id = i.id
where r.create_time &gt;= CURDATE() AND r.create_time &lt; CURDATE() + INTERVAL 1 DAY and category_id = #{cateId}) reply
</select>
<select id="statYesterdayByCateId" parameterType="Long" resultMap="BizStatCateResult">
select * from
(SELECT ifnull(count(id), 0) report_count FROM `biz_report_info`
where create_time &lt; CURDATE() AND create_time &gt;= CURDATE() - INTERVAL 1 DAY and category_id = #{cateId}) report,
(select ifnull(count(1), 0) sign_count from biz_report_receiver r left join biz_report_info i on r.report_id = i.id
where sign_time &lt; CURDATE() AND sign_time &gt;= CURDATE() - INTERVAL 1 DAY and category_id = #{cateId}) sign,
(select ifnull(count(1), 0) reply_count from biz_report_reply r left join biz_report_info i on r.report_id = i.id
where r.create_time &lt; CURDATE() AND r.create_time &gt;= CURDATE() - INTERVAL 1 DAY and category_id = #{cateId}) reply
</select>
<select id="statByDate" resultMap="BizStatCateResult">
select tj.*, concat(ifnull(abs(round((bqs-tqs)/tqs*100,2)),0),'%') tb,
concat(ifnull(abs(round((bqs-sqs)/sqs*100,2)),0),'%') hb
from (
select cate.cate, cate.id cateId, cate.title cateName, ifnull(bq.bqs, 0) bqs, ifnull(tq.tqs, 0) tqs, ifnull(sq.sqs, 0) sqs from
biz_category cate left join
(select cate_id, cate_name, sum(report_count) bqs from biz_stat_cate where stat_date between str_to_date(#{params.beginTime},'%Y-%m-%d') and str_to_date(#{params.endTime},'%Y-%m-%d') group by cate_id, cate_name ) bq
on cate.id = bq.cate_id left join
(select cate_id, cate_name, sum(report_count) tqs from biz_stat_cate
where stat_date between DATE_SUB(str_to_date(#{params.beginTime},'%Y-%m-%d'), INTERVAL 1 YEAR) and DATE_SUB(str_to_date(#{params.endTime},'%Y-%m-%d'), INTERVAL 1 YEAR) group by cate_id, cate_name ) tq
on cate.id = tq.cate_id left join
(select cate_id, cate_name, sum(report_count) sqs from biz_stat_cate
where stat_date between DATE_SUB(str_to_date(#{params.beginTime},'%Y-%m-%d'), INTERVAL DATEDIFF(str_to_date(#{params.endTime},'%Y-%m-%d'), str_to_date(#{params.beginTime},'%Y-%m-%d'))+1 DAY) and DATE_SUB(str_to_date(#{params.endTime},'%Y-%m-%d'), INTERVAL DATEDIFF(str_to_date(#{params.endTime},'%Y-%m-%d'), str_to_date(#{params.beginTime},'%Y-%m-%d'))+1 DAY) group by cate_id, cate_name ) sq
on cate.id = sq.cate_id
where cate.status = 0) tj
</select>
</mapper>

View File

@ -70,5 +70,4 @@
select count(*) from sys_user where del_flag = '0' and user_id = #{userId}
</select>
</mapper>