diff --git a/sql/prison_dict_data.sql b/sql/prison_dict_data.sql index d784b715d9..ee1473fd34 100644 --- a/sql/prison_dict_data.sql +++ b/sql/prison_dict_data.sql @@ -58,7 +58,9 @@ VALUES (201201, 1, '单选', '1', 'primary', '', 'prison_question_type', '0', '单选题', 'admin', NOW(), 'admin', NOW(), 0), (201202, 2, '多选', '2', 'success', '', 'prison_question_type', '0', '多选题', 'admin', NOW(), 'admin', NOW(), 0), (201203, 3, '填空', '3', 'warning', '', 'prison_question_type', '0', '填空题', 'admin', NOW(), 'admin', NOW(), 0), -(201204, 4, '评分', '4', 'info', '', 'prison_question_type', '0', '评分题', 'admin', NOW(), 'admin', NOW(), 0); +(201204, 4, '评分', '4', 'info', '', 'prison_question_type', '0', '评分题', 'admin', NOW(), 'admin', NOW(), 0), +(201205, 5, '日期', '5', 'primary', '', 'prison_question_type', '0', '日期选择题', 'admin', NOW(), 'admin', NOW(), 0), +(201206, 6, '数字', '6', 'success', '', 'prison_question_type', '0', '数字输入题', 'admin', NOW(), 'admin', NOW(), 0); -- 6. 问卷状态 (prison_questionnaire_status) INSERT IGNORE INTO system_dict_type (id, name, type, status, remark, creator, create_time, updater, update_time, deleted) @@ -86,9 +88,11 @@ VALUES (2014, '消费类型', 'prison_consumption_type', '0', '消费记录类 INSERT IGNORE INTO system_dict_data (id, sort, label, value, color_type, css_class, dict_type, status, remark, creator, create_time, updater, update_time, deleted) VALUES -(201401, 1, '存款', '1', 'success', '', 'prison_consumption_type', '0', '存款', 'admin', NOW(), 'admin', NOW(), 0), -(201402, 2, '消费', '2', 'primary', '', 'prison_consumption_type', '0', '消费', 'admin', NOW(), 'admin', NOW(), 0), -(201403, 3, '转账', '3', 'warning', '', 'prison_consumption_type', '0', '转账', 'admin', NOW(), 'admin', NOW(), 0); +(201401, 1, '购物', '1', 'success', '', 'prison_consumption_type', '0', '购物消费', 'admin', NOW(), 'admin', NOW(), 0), +(201402, 2, '餐饮', '2', 'primary', '', 'prison_consumption_type', '0', '餐饮消费', 'admin', NOW(), 'admin', NOW(), 0), +(201403, 3, '医疗', '3', 'warning', '', 'prison_consumption_type', '0', '医疗消费', 'admin', NOW(), 'admin', NOW(), 0), +(201404, 4, '通讯', '4', 'info', '', 'prison_consumption_type', '0', '通讯消费', 'admin', NOW(), 'admin', NOW(), 0), +(201405, 5, '其他', '5', 'primary', '', 'prison_consumption_type', '0', '其他消费', 'admin', NOW(), 'admin', NOW(), 0); -- 8. 消费状态 (prison_consumption_status) INSERT IGNORE INTO system_dict_type (id, name, type, status, remark, creator, create_time, updater, update_time, deleted) @@ -105,9 +109,10 @@ VALUES (2016, '评估类型', 'prison_assessment_type', '0', '危险评估类型 INSERT IGNORE INTO system_dict_data (id, sort, label, value, color_type, css_class, dict_type, status, remark, creator, create_time, updater, update_time, deleted) VALUES -(201601, 1, '入狱评估', '1', 'primary', '', 'prison_assessment_type', '0', '入狱时评估', 'admin', NOW(), 'admin', NOW(), 0), +(201601, 1, '入监评估', '1', 'primary', '', 'prison_assessment_type', '0', '入监时评估', 'admin', NOW(), 'admin', NOW(), 0), (201602, 2, '定期评估', '2', 'success', '', 'prison_assessment_type', '0', '定期评估', 'admin', NOW(), 'admin', NOW(), 0), -(201603, 3, '专项评估', '3', 'warning', '', 'prison_assessment_type', '0', '专项评估', 'admin', NOW(), 'admin', NOW(), 0); +(201603, 3, '专项评估', '3', 'warning', '', 'prison_assessment_type', '0', '专项评估', 'admin', NOW(), 'admin', NOW(), 0), +(201604, 4, '出监评估', '4', 'info', '', 'prison_assessment_type', '0', '出监时评估', 'admin', NOW(), 'admin', NOW(), 0); -- 10. 考核等级 (prison_score_level) INSERT IGNORE INTO system_dict_type (id, name, type, status, remark, creator, create_time, updater, update_time, deleted) diff --git a/yudao-module-prison/pom.xml b/yudao-module-prison/pom.xml index 387934634e..f47a1824cd 100644 --- a/yudao-module-prison/pom.xml +++ b/yudao-module-prison/pom.xml @@ -72,6 +72,21 @@ spring-boot-starter-test test + + org.springframework.security + spring-security-test + test + + + org.mockito + mockito-core + test + + + org.mockito + mockito-junit-jupiter + test + diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/area/PrisonAreaController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/area/PrisonAreaController.java index 2f75f5c4fd..dee240e0bf 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/area/PrisonAreaController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/area/PrisonAreaController.java @@ -12,6 +12,7 @@ import jakarta.validation.constraints.*; import jakarta.validation.*; import jakarta.servlet.http.*; import java.util.*; +import java.util.stream.Collectors; import java.io.IOException; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -110,7 +111,45 @@ public class PrisonAreaController { @RequestParam(value = "level", required = false) Integer level, @RequestParam(value = "status", required = false) Integer status) { List tree = areaService.getAreaTree(name, type, level, status); - return success(BeanUtils.toBean(tree, AreaRespVO.class)); + return success(convertTreeToRespVO(tree)); + } + + /** + * 递归转换 AreaDO 树形结构到 AreaRespVO + */ + private List convertTreeToRespVO(List areas) { + if (areas == null || areas.isEmpty()) { + return new ArrayList<>(); + } + List result = new ArrayList<>(); + for (AreaDO area : areas) { + result.add(convertToRespVO(area)); + } + return result; + } + + /** + * 递归转换单个 AreaDO 到 AreaRespVO + */ + private AreaRespVO convertToRespVO(AreaDO area) { + AreaRespVO resp = new AreaRespVO(); + resp.setId(area.getId()); + resp.setName(area.getName()); + resp.setCode(area.getCode()); + resp.setParentId(area.getParentId()); + resp.setLevel(area.getLevel()); + resp.setType(area.getType()); + resp.setCapacity(area.getCapacity()); + resp.setCurrentCount(area.getCurrentCount()); + resp.setSort(area.getSort()); + resp.setStatus(area.getStatus()); + resp.setRemark(area.getRemark()); + resp.setCreateTime(area.getCreateTime()); + // 递归设置子节点 + if (area.getChildren() != null && !area.getChildren().isEmpty()) { + resp.setChildren(convertTreeToRespVO(area.getChildren())); + } + return resp; } @GetMapping("/children") diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/area/vo/AreaRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/area/vo/AreaRespVO.java index 51d9d2eb49..3200cd0a8a 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/area/vo/AreaRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/area/vo/AreaRespVO.java @@ -5,6 +5,7 @@ import lombok.*; import java.util.*; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import cn.idev.excel.annotation.*; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -59,10 +60,10 @@ public class AreaRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; @Schema(description = "子监区列表,仅一级监区返回") - @JsonIgnore private List children; } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/cell/PrisonCellController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/cell/PrisonCellController.java index 94fa66047b..2397f6f124 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/cell/PrisonCellController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/cell/PrisonCellController.java @@ -87,6 +87,8 @@ public class PrisonCellController { return success(null); } CellRespVO respVO = BeanUtils.toBean(cell, CellRespVO.class); + // 显式设置创建时间(因为继承字段可能未正确复制) + respVO.setCreateTime(cell.getCreateTime()); // 填充监区名称 if (cell.getAreaId() != null) { AreaDO area = areaMapper.selectById(cell.getAreaId()); @@ -104,6 +106,18 @@ public class PrisonCellController { return success(cellService.getCellPage(pageReqVO)); } + @GetMapping("/list") + @Operation(summary = "获得监室列表") + public CommonResult> getCellList( + @RequestParam(value = "areaId", required = false) Long areaId, + @RequestParam(value = "status", required = false) Integer status) { + CellPageReqVO pageReqVO = new CellPageReqVO(); + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + pageReqVO.setAreaId(areaId); + pageReqVO.setStatus(status); + return success(cellService.getCellPage(pageReqVO).getList()); + } + @GetMapping("/export-excel") @Operation(summary = "导出监室信息 Excel") @PreAuthorize("@ss.hasPermission('prison:cell:export')") diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/cell/vo/CellRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/cell/vo/CellRespVO.java index 50d1d82757..3eba29948e 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/cell/vo/CellRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/cell/vo/CellRespVO.java @@ -5,6 +5,7 @@ import lombok.*; import java.util.*; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import cn.idev.excel.annotation.*; @Schema(description = "管理后台 - 监室信息 Response VO") @@ -54,6 +55,7 @@ public class CellRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/PrisonConsumptionController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/PrisonConsumptionController.java index 00f9fedb3c..31d6e1cf7a 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/PrisonConsumptionController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/PrisonConsumptionController.java @@ -17,7 +17,6 @@ import java.io.IOException; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -26,10 +25,8 @@ import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.prison.controller.admin.consumption.vo.*; -import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDO; import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDetailDO; import cn.iocoder.yudao.module.prison.service.consumption.ConsumptionService; -import cn.iocoder.yudao.module.prison.convert.consumption.ConsumptionConvert; import cn.iocoder.yudao.module.prison.convert.consumption.ConsumptionDetailConvert; @Tag(name = "管理后台 - 消费订单") @@ -79,24 +76,14 @@ public class PrisonConsumptionController { @Parameter(name = "id", description = "订单编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('prison:consumption:query')") public CommonResult getConsumption(@RequestParam("id") Long id) { - ConsumptionDO consumption = consumptionService.getConsumption(id); - if (consumption == null) { - return success(null); - } - // 转换主表数据 - ConsumptionRespVO respVO = ConsumptionConvert.INSTANCE.convert(consumption); - // 查询并转换明细列表 - List detailList = consumptionService.getConsumptionDetailList(id); - respVO.setDetails(ConsumptionDetailConvert.INSTANCE.convertListResp(detailList)); - return success(respVO); + return success(consumptionService.getConsumption(id)); } @GetMapping("/page") @Operation(summary = "获得消费订单分页") @PreAuthorize("@ss.hasPermission('prison:consumption:query')") public CommonResult> getConsumptionPage(@Valid ConsumptionPageReqVO pageReqVO) { - PageResult pageResult = consumptionService.getConsumptionPage(pageReqVO); - return success(ConsumptionConvert.INSTANCE.convertPage(pageResult)); + return success(consumptionService.getConsumptionPage(pageReqVO)); } @GetMapping("/detail-list") @@ -116,10 +103,9 @@ public class PrisonConsumptionController { public void exportConsumptionExcel(@Valid ConsumptionPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = consumptionService.getConsumptionPage(pageReqVO).getList(); + List list = consumptionService.getConsumptionPage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "消费订单.xls", "数据", ConsumptionRespVO.class, - ConsumptionConvert.INSTANCE.convertList(list)); + ExcelUtils.write(response, "消费订单.xls", "数据", ConsumptionRespVO.class, list); } } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/vo/ConsumptionPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/vo/ConsumptionPageReqVO.java index c82e0a3938..17aae81cf3 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/vo/ConsumptionPageReqVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/vo/ConsumptionPageReqVO.java @@ -25,6 +25,15 @@ public class ConsumptionPageReqVO extends PageParam { @Size(max = 50, message = "罪犯编号长度不能超过50个字符") private String prisonerNo; + @Schema(description = "罪犯姓名", example = "张三") + private String prisonerName; + + @Schema(description = "监区ID", example = "1") + private Long prisonAreaId; + + @Schema(description = "监室ID", example = "1") + private Long prisonCellId; + @Schema(description = "类型:1-购物 2-餐饮 3-医疗 4-通讯 5-其他", example = "1") @Min(value = 1, message = "类型最小值为1") @Max(value = 5, message = "类型最大值为5") diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/vo/ConsumptionRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/vo/ConsumptionRespVO.java index 5f8417d94f..b505f0e85a 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/vo/ConsumptionRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/vo/ConsumptionRespVO.java @@ -6,6 +6,7 @@ import java.util.*; import java.math.BigDecimal; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import cn.idev.excel.annotation.*; @Schema(description = "管理后台 - 消费订单 Response VO") @@ -25,6 +26,24 @@ public class ConsumptionRespVO { @ExcelProperty("罪犯编号") private String prisonerNo; + @Schema(description = "罪犯姓名", example = "张三") + @ExcelProperty("罪犯姓名") + private String prisonerName; + + @Schema(description = "监区ID", example = "1") + private Long prisonAreaId; + + @Schema(description = "监区名称", example = "一监区") + @ExcelProperty("监区") + private String prisonAreaName; + + @Schema(description = "监室ID", example = "1") + private Long prisonCellId; + + @Schema(description = "监室名称", example = "101监室") + @ExcelProperty("监室") + private String prisonCellName; + @Schema(description = "订单号") @ExcelProperty("订单号") private String orderNo; @@ -43,6 +62,7 @@ public class ConsumptionRespVO { @Schema(description = "交易时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("交易时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime tradeTime; @Schema(description = "状态:1-成功 2-失败", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @@ -55,8 +75,14 @@ public class ConsumptionRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; + @Schema(description = "更新时间") + @ExcelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime updateTime; + @Schema(description = "消费明细列表") private List details; diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/dashboard/vo/ProvinceChartVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/dashboard/vo/ProvinceChartVO.java index c3d22bff93..cf80e0a603 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/dashboard/vo/ProvinceChartVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/dashboard/vo/ProvinceChartVO.java @@ -16,8 +16,8 @@ public class ProvinceChartVO { @Schema(description = "省份名称", example = "河南省") private String province; - @Schema(description = "省份编码", example = "41") - private Integer provinceCode; + @Schema(description = "省份名称/编码", example = "河南省或上海") + private String provinceCode; @Schema(description = "人数", example = "156") private Integer count; diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/EvaluationReportController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/EvaluationReportController.java new file mode 100644 index 0000000000..6f44c7ed18 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/EvaluationReportController.java @@ -0,0 +1,387 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.*; +import cn.iocoder.yudao.module.prison.service.evaluationreport.EvaluationReportService; + +@Tag(name = "管理后台 - 评估报告") +@RestController +@RequestMapping("/prison/evaluation-report") +@Validated +public class EvaluationReportController { + + @Resource + private EvaluationReportService evaluationReportService; + + // ========== 模板管理 ========== + + @PostMapping("/template/create") + @Operation(summary = "创建评估模板") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:template:create')") + public CommonResult createTemplate(@Valid @RequestBody EvaluationTemplateSaveReqVO createReqVO) { + return success(evaluationReportService.createTemplate(createReqVO)); + } + + @PutMapping("/template/update") + @Operation(summary = "更新评估模板") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:template:update')") + public CommonResult updateTemplate(@Valid @RequestBody EvaluationTemplateSaveReqVO updateReqVO) { + evaluationReportService.updateTemplate(updateReqVO); + return success(true); + } + + @DeleteMapping("/template/delete") + @Operation(summary = "删除评估模板") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:template:delete')") + public CommonResult deleteTemplate(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { + evaluationReportService.deleteTemplate(id); + return success(true); + } + + @DeleteMapping("/template/delete-list") + @Operation(summary = "批量删除评估模板") + @Parameter(name = "ids", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:template:delete')") + public CommonResult deleteTemplateList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { + evaluationReportService.deleteTemplateListByIds(ids); + return success(true); + } + + @GetMapping("/template/get") + @Operation(summary = "获得评估模板") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:template:query')") + public CommonResult getTemplate(@RequestParam("id") Long id) { + EvaluationTemplateDO template = evaluationReportService.getTemplate(id); + return success(BeanUtils.toBean(template, EvaluationTemplateRespVO.class)); + } + + @GetMapping("/template/page") + @Operation(summary = "获得评估模板分页") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:template:query')") + public CommonResult> getTemplatePage(@Valid EvaluationTemplatePageReqVO pageReqVO) { + PageResult pageResult = evaluationReportService.getTemplatePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, EvaluationTemplateRespVO.class)); + } + + @GetMapping("/template/list-enabled") + @Operation(summary = "获取启用的模板列表") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:template:query')") + public CommonResult> getEnabledTemplateList() { + List list = evaluationReportService.getEnabledTemplateList(); + return success(BeanUtils.toBean(list, EvaluationTemplateRespVO.class)); + } + + @PostMapping("/template/export-excel") + @Operation(summary = "导出评估模板 Excel") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:template:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportTemplateExcel(@Valid EvaluationTemplatePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = evaluationReportService.getTemplatePage(pageReqVO).getList(); + ExcelUtils.write(response, "评估模板.xlsx", "数据", EvaluationTemplateRespVO.class, + BeanUtils.toBean(list, EvaluationTemplateRespVO.class)); + } + + // ========== 维度配置管理 ========== + + @PostMapping("/dimension/create") + @Operation(summary = "创建评估维度") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension:create')") + public CommonResult createDimension(@Valid @RequestBody EvaluationDimensionSaveReqVO createReqVO) { + return success(evaluationReportService.createDimension(createReqVO)); + } + + @PutMapping("/dimension/update") + @Operation(summary = "更新评估维度") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension:update')") + public CommonResult updateDimension(@Valid @RequestBody EvaluationDimensionSaveReqVO updateReqVO) { + evaluationReportService.updateDimension(updateReqVO); + return success(true); + } + + @DeleteMapping("/dimension/delete") + @Operation(summary = "删除评估维度") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension:delete')") + public CommonResult deleteDimension(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { + evaluationReportService.deleteDimension(id); + return success(true); + } + + @DeleteMapping("/dimension/delete-list") + @Operation(summary = "批量删除评估维度") + @Parameter(name = "ids", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension:delete')") + public CommonResult deleteDimensionList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { + evaluationReportService.deleteDimensionListByIds(ids); + return success(true); + } + + @GetMapping("/dimension/get") + @Operation(summary = "获得评估维度") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension:query')") + public CommonResult getDimension(@RequestParam("id") Long id) { + EvaluationDimensionDO dimension = evaluationReportService.getDimension(id); + return success(BeanUtils.toBean(dimension, EvaluationDimensionRespVO.class)); + } + + @GetMapping("/dimension/page") + @Operation(summary = "获得评估维度分页") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension:query')") + public CommonResult> getDimensionPage(@Valid EvaluationDimensionPageReqVO pageReqVO) { + PageResult pageResult = evaluationReportService.getDimensionPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, EvaluationDimensionRespVO.class)); + } + + @GetMapping("/dimension/list-by-template") + @Operation(summary = "根据模板ID获取维度列表") + @Parameter(name = "templateId", description = "模板ID", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension:query')") + public CommonResult> getDimensionsByTemplateId(@RequestParam("templateId") Long templateId) { + List list = evaluationReportService.getDimensionsByTemplateId(templateId); + return success(BeanUtils.toBean(list, EvaluationDimensionRespVO.class)); + } + + // ========== 评估报告管理 ========== + + @PostMapping("/report/create") + @Operation(summary = "创建评估报告") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:create')") + public CommonResult createReport(@Valid @RequestBody EvaluationReportSaveReqVO createReqVO) { + return success(evaluationReportService.createReport(createReqVO)); + } + + @PutMapping("/report/update") + @Operation(summary = "更新评估报告") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:update')") + public CommonResult updateReport(@Valid @RequestBody EvaluationReportSaveReqVO updateReqVO) { + evaluationReportService.updateReport(updateReqVO); + return success(true); + } + + @DeleteMapping("/report/delete") + @Operation(summary = "删除评估报告") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:delete')") + public CommonResult deleteReport(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { + evaluationReportService.deleteReport(id); + return success(true); + } + + @DeleteMapping("/report/delete-list") + @Operation(summary = "批量删除评估报告") + @Parameter(name = "ids", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:delete')") + public CommonResult deleteReportList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { + evaluationReportService.deleteReportListByIds(ids); + return success(true); + } + + @GetMapping("/report/get") + @Operation(summary = "获得评估报告") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:query')") + public CommonResult getReport(@RequestParam("id") Long id) { + EvaluationReportDO report = evaluationReportService.getReport(id); + return success(BeanUtils.toBean(report, EvaluationReportRespVO.class)); + } + + @GetMapping("/report/page") + @Operation(summary = "获得评估报告分页") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:query')") + public CommonResult> getReportPage(@Valid EvaluationReportPageReqVO pageReqVO) { + PageResult pageResult = evaluationReportService.getReportPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, EvaluationReportRespVO.class)); + } + + @GetMapping("/report/get-by-report-no") + @Operation(summary = "根据报告编号获取报告") + @Parameter(name = "reportNo", description = "报告编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:query')") + public CommonResult getReportByReportNo(@RequestParam("reportNo") String reportNo) { + EvaluationReportDO report = evaluationReportService.getReportByReportNo(reportNo); + return success(BeanUtils.toBean(report, EvaluationReportRespVO.class)); + } + + @GetMapping("/report/list-by-prisoner") + @Operation(summary = "根据罪犯ID获取报告列表") + @Parameter(name = "prisonerId", description = "罪犯ID", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:query')") + public CommonResult> getReportsByPrisonerId(@RequestParam("prisonerId") Long prisonerId) { + List list = evaluationReportService.getReportsByPrisonerId(prisonerId); + return success(BeanUtils.toBean(list, EvaluationReportRespVO.class)); + } + + @PostMapping("/report/submit") + @Operation(summary = "提交报告审核") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:update')") + public CommonResult submitReport(@RequestParam("id") Long id) { + evaluationReportService.submitReport(id); + return success(true); + } + + @PostMapping("/report/audit") + @Operation(summary = "审核报告") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:audit')") + public CommonResult auditReport(@Valid @RequestBody EvaluationReportAuditReqVO auditReqVO) { + evaluationReportService.auditReport(auditReqVO); + return success(true); + } + + @PostMapping("/report/void") + @Operation(summary = "作废报告") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:void')") + public CommonResult voidReport(@RequestParam("id") Long id) { + evaluationReportService.voidReport(id); + return success(true); + } + + @PostMapping("/report/export-excel") + @Operation(summary = "导出评估报告 Excel") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:report:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportReportExcel(@Valid EvaluationReportPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = evaluationReportService.getReportPage(pageReqVO).getList(); + ExcelUtils.write(response, "评估报告.xlsx", "数据", EvaluationReportRespVO.class, + BeanUtils.toBean(list, EvaluationReportRespVO.class)); + } + + // ========== 维度数据管理 ========== + + @PostMapping("/dimension-data/create") + @Operation(summary = "创建维度数据") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension-data:create')") + public CommonResult createDimensionData(@Valid @RequestBody EvaluationDimensionDataSaveReqVO createReqVO) { + return success(evaluationReportService.createDimensionData(createReqVO)); + } + + @PutMapping("/dimension-data/update") + @Operation(summary = "更新维度数据") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension-data:update')") + public CommonResult updateDimensionData(@Valid @RequestBody EvaluationDimensionDataSaveReqVO updateReqVO) { + evaluationReportService.updateDimensionData(updateReqVO); + return success(true); + } + + @DeleteMapping("/dimension-data/delete") + @Operation(summary = "删除维度数据") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension-data:delete')") + public CommonResult deleteDimensionData(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { + evaluationReportService.deleteDimensionData(id); + return success(true); + } + + @GetMapping("/dimension-data/list-by-report") + @Operation(summary = "根据报告ID获取维度数据列表") + @Parameter(name = "reportId", description = "报告ID", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:dimension-data:query')") + public CommonResult> getDimensionDataListByReportId(@RequestParam("reportId") Long reportId) { + List list = evaluationReportService.getDimensionDataListByReportId(reportId); + return success(BeanUtils.toBean(list, EvaluationDimensionDataRespVO.class)); + } + + // ========== 快捷评语库管理 ========== + + @PostMapping("/comment/create") + @Operation(summary = "创建快捷评语") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:comment:create')") + public CommonResult createComment(@Valid @RequestBody ReportCommentSaveReqVO createReqVO) { + return success(evaluationReportService.createComment(createReqVO)); + } + + @PutMapping("/comment/update") + @Operation(summary = "更新快捷评语") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:comment:update')") + public CommonResult updateComment(@Valid @RequestBody ReportCommentSaveReqVO updateReqVO) { + evaluationReportService.updateComment(updateReqVO); + return success(true); + } + + @DeleteMapping("/comment/delete") + @Operation(summary = "删除快捷评语") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:comment:delete')") + public CommonResult deleteComment(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { + evaluationReportService.deleteComment(id); + return success(true); + } + + @DeleteMapping("/comment/delete-list") + @Operation(summary = "批量删除快捷评语") + @Parameter(name = "ids", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:comment:delete')") + public CommonResult deleteCommentList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { + evaluationReportService.deleteCommentListByIds(ids); + return success(true); + } + + @GetMapping("/comment/get") + @Operation(summary = "获得快捷评语") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:comment:query')") + public CommonResult getComment(@RequestParam("id") Long id) { + ReportCommentDO comment = evaluationReportService.getComment(id); + return success(BeanUtils.toBean(comment, ReportCommentRespVO.class)); + } + + @GetMapping("/comment/page") + @Operation(summary = "获得快捷评语分页") + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:comment:query')") + public CommonResult> getCommentPage(@Valid ReportCommentPageReqVO pageReqVO) { + PageResult pageResult = evaluationReportService.getCommentPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ReportCommentRespVO.class)); + } + + @GetMapping("/comment/list-by-type-level") + @Operation(summary = "根据类型和等级获取评语列表") + @Parameter(name = "commentType", description = "评语类型", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:comment:query')") + public CommonResult> getCommentsByTypeAndLevel( + @RequestParam("commentType") Integer commentType, + @RequestParam(value = "level", required = false) Integer level) { + List list = evaluationReportService.getCommentsByTypeAndLevel(commentType, level); + return success(BeanUtils.toBean(list, ReportCommentRespVO.class)); + } + + @GetMapping("/comment/list-by-dimension") + @Operation(summary = "根据维度ID获取评语列表") + @Parameter(name = "dimensionId", description = "维度ID", required = true) + @PreAuthorize("@ss.hasPermission('prison:evaluation-report:comment:query')") + public CommonResult> getCommentsByDimensionId(@RequestParam("dimensionId") Long dimensionId) { + List list = evaluationReportService.getCommentsByDimensionId(dimensionId); + return success(BeanUtils.toBean(list, ReportCommentRespVO.class)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataPageReqVO.java new file mode 100644 index 0000000000..0ec4e74109 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataPageReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 报告维度数据分页 Request VO") +@Data +public class EvaluationDimensionDataPageReqVO extends PageParam { + + @Schema(description = "报告ID") + private Long reportId; + + @Schema(description = "维度ID") + private Long dimensionId; + + @Schema(description = "维度类型") + private Integer dimensionType; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataRespVO.java new file mode 100644 index 0000000000..82998cebc0 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataRespVO.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 报告维度数据 Response VO") +@Data +@ExcelIgnoreUnannotated +public class EvaluationDimensionDataRespVO { + + @Schema(description = "数据ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + @ExcelProperty("数据ID") + private Long id; + + @Schema(description = "报告ID", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("报告ID") + private Long reportId; + + @Schema(description = "维度ID", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("维度ID") + private Long dimensionId; + + @Schema(description = "维度名称", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("维度名称") + private String dimensionName; + + @Schema(description = "维度编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("维度编码") + private String dimensionCode; + + @Schema(description = "维度类型:1-心理测评 2-行为表现 3-教育改造 4-劳动表现 5-人际交往 6-自评/他评") + @ExcelProperty("维度类型") + private Integer dimensionType; + + @Schema(description = "得分", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("得分") + private BigDecimal score; + + @Schema(description = "满分") + @ExcelProperty("满分") + private BigDecimal fullScore; + + @Schema(description = "权重得分") + @ExcelProperty("权重得分") + private BigDecimal weightedScore; + + @Schema(description = "评级:1-优秀 2-良好 3-一般 4-较差") + @ExcelProperty("评级") + private Integer level; + + @Schema(description = "维度结论") + @ExcelProperty("维度结论") + private String conclusion; + + @Schema(description = "维度评语") + @ExcelProperty("维度评语") + private String comment; + + @Schema(description = "AI分析内容") + private String aiAnalysis; + + @Schema(description = "回答详情(JSON格式)") + private String answerDetails; + + @Schema(description = "排序") + @ExcelProperty("排序") + private Integer sort; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataSaveReqVO.java new file mode 100644 index 0000000000..49d937a4f3 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionDataSaveReqVO.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 报告维度数据新增/修改 Request VO") +@Data +public class EvaluationDimensionDataSaveReqVO { + + @Schema(description = "数据ID") + private Long id; + + @Schema(description = "报告ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "报告ID不能为空") + private Long reportId; + + @Schema(description = "维度ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "维度ID不能为空") + private Long dimensionId; + + @Schema(description = "维度名称") + private String dimensionName; + + @Schema(description = "维度编码") + private String dimensionCode; + + @Schema(description = "维度类型:1-心理测评 2-行为表现 3-教育改造 4-劳动表现 5-人际交往 6-自评/他评") + private Integer dimensionType; + + @Schema(description = "得分", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "得分不能为空") + private BigDecimal score; + + @Schema(description = "满分") + private BigDecimal fullScore; + + @Schema(description = "权重得分") + private BigDecimal weightedScore; + + @Schema(description = "评级:1-优秀 2-良好 3-一般 4-较差") + private Integer level; + + @Schema(description = "维度结论") + private String conclusion; + + @Schema(description = "维度评语") + private String comment; + + @Schema(description = "AI分析内容") + private String aiAnalysis; + + @Schema(description = "回答详情(JSON格式)") + private String answerDetails; + + @Schema(description = "排序") + @Min(value = 0, message = "排序不能为负数") + private Integer sort; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionPageReqVO.java new file mode 100644 index 0000000000..a455b23772 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionPageReqVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 评估维度分页 Request VO") +@Data +public class EvaluationDimensionPageReqVO extends PageParam { + + @Schema(description = "模板ID") + private Long templateId; + + @Schema(description = "维度名称") + private String name; + + @Schema(description = "维度编码") + private String code; + + @Schema(description = "维度类型:1-心理测评 2-行为表现 3-教育改造 4-劳动表现 5-人际交往 6-自评/他评") + private Integer dimensionType; + + @Schema(description = "评估方式:1-问卷测评 2-量表评分 3-行为观察 4-AI分析 5-综合评定") + private Integer evaluationMethod; + + @Schema(description = "状态:1-启用 2-禁用") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionRespVO.java new file mode 100644 index 0000000000..d4f71340c4 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionRespVO.java @@ -0,0 +1,79 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 评估维度 Response VO") +@Data +@ExcelIgnoreUnannotated +public class EvaluationDimensionRespVO { + + @Schema(description = "维度ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + @ExcelProperty("维度ID") + private Long id; + + @Schema(description = "模板ID", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("模板ID") + private Long templateId; + + @Schema(description = "维度名称", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("维度名称") + private String name; + + @Schema(description = "维度编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("维度编码") + private String code; + + @Schema(description = "维度描述") + @ExcelProperty("维度描述") + private String description; + + @Schema(description = "维度类型:1-心理测评 2-行为表现 3-教育改造 4-劳动表现 5-人际交往 6-自评/他评", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("维度类型") + private Integer dimensionType; + + @Schema(description = "权重(百分比)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("权重") + private BigDecimal weight; + + @Schema(description = "评分规则:1-分值越高越好 2-分值越低越好 3-区间评分", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评分规则") + private Integer scoreRule; + + @Schema(description = "最大分值", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("最大分值") + private BigDecimal maxScore; + + @Schema(description = "最小分值", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("最小分值") + private BigDecimal minScore; + + @Schema(description = "及格分值") + @ExcelProperty("及格分值") + private BigDecimal passScore; + + @Schema(description = "评估方式:1-问卷测评 2-量表评分 3-行为观察 4-AI分析 5-综合评定", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评估方式") + private Integer evaluationMethod; + + @Schema(description = "问题列表(JSON格式)") + private String questions; + + @Schema(description = "排序") + @ExcelProperty("排序") + private Integer sort; + + @Schema(description = "状态:1-启用 2-禁用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("状态") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionSaveReqVO.java new file mode 100644 index 0000000000..64c76468f4 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationDimensionSaveReqVO.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 评估维度新增/修改 Request VO") +@Data +public class EvaluationDimensionSaveReqVO { + + @Schema(description = "维度ID") + private Long id; + + @Schema(description = "模板ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "模板ID不能为空") + private Long templateId; + + @Schema(description = "维度名称", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "维度名称不能为空") + private String name; + + @Schema(description = "维度编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "维度编码不能为空") + private String code; + + @Schema(description = "维度描述") + private String description; + + @Schema(description = "维度类型:1-心理测评 2-行为表现 3-教育改造 4-劳动表现 5-人际交往 6-自评/他评", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "维度类型不能为空") + private Integer dimensionType; + + @Schema(description = "权重(百分比)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "权重不能为空") + private BigDecimal weight; + + @Schema(description = "评分规则:1-分值越高越好 2-分值越低越好 3-区间评分", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "评分规则不能为空") + private Integer scoreRule; + + @Schema(description = "最大分值", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "最大分值不能为空") + private BigDecimal maxScore; + + @Schema(description = "最小分值", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "最小分值不能为空") + private BigDecimal minScore; + + @Schema(description = "及格分值") + private BigDecimal passScore; + + @Schema(description = "评估方式:1-问卷测评 2-量表评分 3-行为观察 4-AI分析 5-综合评定", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "评估方式不能为空") + private Integer evaluationMethod; + + @Schema(description = "问题列表(JSON格式)") + private String questions; + + @Schema(description = "排序") + @Min(value = 0, message = "排序不能为负数") + private Integer sort; + + @Schema(description = "状态:1-启用 2-禁用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "状态不能为空") + private Integer status; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportAuditReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportAuditReqVO.java new file mode 100644 index 0000000000..992fd9d70a --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportAuditReqVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 评估报告审核 Request VO") +@Data +public class EvaluationReportAuditReqVO { + + @Schema(description = "报告ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "报告ID不能为空") + private Long id; + + @Schema(description = "审核状态:3-已审核 4-已作废", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "审核状态不能为空") + private Integer status; + + @Schema(description = "审核意见") + private String auditOpinion; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportPageReqVO.java new file mode 100644 index 0000000000..2fbe0b23d5 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportPageReqVO.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 评估报告分页 Request VO") +@Data +public class EvaluationReportPageReqVO extends PageParam { + + @Schema(description = "罪犯ID") + private Long prisonerId; + + @Schema(description = "罪犯编号") + private String prisonerNo; + + @Schema(description = "罪犯姓名") + private String prisonerName; + + @Schema(description = "模板ID") + private Long templateId; + + @Schema(description = "评估类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估") + private Integer evaluationType; + + @Schema(description = "评估周期:1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估") + private Integer evaluationCycle; + + @Schema(description = "评级:1-优秀 2-良好 3-一般 4-较差 5-危险") + private Integer level; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险") + private Integer riskLevel; + + @Schema(description = "报告状态:1-草稿 2-待审核 3-已审核 4-已作废") + private Integer status; + + @Schema(description = "监区ID") + private Long areaId; + + @Schema(description = "评估日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] evaluationDate; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportRespVO.java new file mode 100644 index 0000000000..3cfbbd93d9 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportRespVO.java @@ -0,0 +1,134 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 评估报告 Response VO") +@Data +@ExcelIgnoreUnannotated +public class EvaluationReportRespVO { + + @Schema(description = "报告ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + @ExcelProperty("报告ID") + private Long id; + + @Schema(description = "报告编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("报告编号") + private String reportNo; + + @Schema(description = "罪犯ID", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("罪犯ID") + private Long prisonerId; + + @Schema(description = "罪犯编号") + @ExcelProperty("罪犯编号") + private String prisonerNo; + + @Schema(description = "罪犯姓名") + @ExcelProperty("罪犯姓名") + private String prisonerName; + + @Schema(description = "模板ID", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("模板ID") + private Long templateId; + + @Schema(description = "模板名称") + @ExcelProperty("模板名称") + private String templateName; + + @Schema(description = "评估类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评估类型") + private Integer evaluationType; + + @Schema(description = "评估周期:1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评估周期") + private Integer evaluationCycle; + + @Schema(description = "评估日期") + @ExcelProperty("评估日期") + private LocalDateTime evaluationDate; + + @Schema(description = "评估人员ID") + private Long evaluatorId; + + @Schema(description = "评估人员姓名") + @ExcelProperty("评估人员") + private String evaluatorName; + + @Schema(description = "监区ID") + private Long areaId; + + @Schema(description = "监区名称") + @ExcelProperty("监区名称") + private String areaName; + + @Schema(description = "总分") + @ExcelProperty("总分") + private BigDecimal totalScore; + + @Schema(description = "评级:1-优秀 2-良好 3-一般 4-较差 5-危险", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评级") + private Integer level; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险") + @ExcelProperty("风险等级") + private Integer riskLevel; + + @Schema(description = "风险得分") + @ExcelProperty("风险得分") + private BigDecimal riskScore; + + @Schema(description = "AI生成状态:1-待生成 2-生成中 3-已完成 4-生成失败") + @ExcelProperty("AI生成状态") + private Integer aiStatus; + + @Schema(description = "AI生成内容") + private String aiContent; + + @Schema(description = "AI生成报告内容") + private String aiReportContent; + + @Schema(description = "报告状态:1-草稿 2-待审核 3-已审核 4-已作废", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("报告状态") + private Integer status; + + @Schema(description = "审核人ID") + private Long auditorId; + + @Schema(description = "审核人姓名") + @ExcelProperty("审核人") + private String auditorName; + + @Schema(description = "审核时间") + @ExcelProperty("审核时间") + private LocalDateTime auditTime; + + @Schema(description = "审核意见") + @ExcelProperty("审核意见") + private String auditOpinion; + + @Schema(description = "报告结论") + @ExcelProperty("报告结论") + private String conclusion; + + @Schema(description = "改造建议") + @ExcelProperty("改造建议") + private String suggestions; + + @Schema(description = "报告PDF路径") + private String pdfPath; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportSaveReqVO.java new file mode 100644 index 0000000000..72dcb8ee2d --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationReportSaveReqVO.java @@ -0,0 +1,94 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 评估报告新增/修改 Request VO") +@Data +public class EvaluationReportSaveReqVO { + + @Schema(description = "报告ID") + private Long id; + + @Schema(description = "罪犯ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "罪犯ID不能为空") + private Long prisonerId; + + @Schema(description = "罪犯编号") + private String prisonerNo; + + @Schema(description = "罪犯姓名") + private String prisonerName; + + @Schema(description = "模板ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "模板ID不能为空") + private Long templateId; + + @Schema(description = "模板名称") + private String templateName; + + @Schema(description = "评估类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "评估类型不能为空") + private Integer evaluationType; + + @Schema(description = "评估周期:1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "评估周期不能为空") + private Integer evaluationCycle; + + @Schema(description = "评估日期", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "评估日期不能为空") + private LocalDateTime evaluationDate; + + @Schema(description = "评估人员ID") + private Long evaluatorId; + + @Schema(description = "评估人员姓名") + private String evaluatorName; + + @Schema(description = "监区ID") + private Long areaId; + + @Schema(description = "监区名称") + private String areaName; + + @Schema(description = "总分") + private BigDecimal totalScore; + + @Schema(description = "评级:1-优秀 2-良好 3-一般 4-较差 5-危险") + private Integer level; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险") + private Integer riskLevel; + + @Schema(description = "风险得分") + private BigDecimal riskScore; + + @Schema(description = "AI生成状态:1-待生成 2-生成中 3-已完成 4-生成失败") + private Integer aiStatus; + + @Schema(description = "AI生成内容") + private String aiContent; + + @Schema(description = "AI生成报告内容") + private String aiReportContent; + + @Schema(description = "报告状态:1-草稿 2-待审核 3-已审核 4-已作废") + private Integer status; + + @Schema(description = "报告结论") + private String conclusion; + + @Schema(description = "改造建议") + private String suggestions; + + @Schema(description = "报告PDF路径") + private String pdfPath; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplatePageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplatePageReqVO.java new file mode 100644 index 0000000000..a1f2fb91de --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplatePageReqVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 评估模板分页 Request VO") +@Data +public class EvaluationTemplatePageReqVO extends PageParam { + + @Schema(description = "模板名称") + private String name; + + @Schema(description = "模板编码") + private String code; + + @Schema(description = "模板类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估") + private Integer type; + + @Schema(description = "评估周期:1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估") + private Integer evaluationCycle; + + @Schema(description = "状态:1-启用 2-禁用") + private Integer status; + + @Schema(description = "是否允许AI生成:1-是 2-否") + private Integer aiEnabled; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplateRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplateRespVO.java new file mode 100644 index 0000000000..8d1f15b1f6 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplateRespVO.java @@ -0,0 +1,69 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 评估模板 Response VO") +@Data +@ExcelIgnoreUnannotated +public class EvaluationTemplateRespVO { + + @Schema(description = "模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + @ExcelProperty("模板ID") + private Long id; + + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("模板名称") + private String name; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("模板编码") + private String code; + + @Schema(description = "模板类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("模板类型") + private Integer type; + + @Schema(description = "描述") + @ExcelProperty("描述") + private String description; + + @Schema(description = "适用人群") + @ExcelProperty("适用人群") + private String applicableCrowd; + + @Schema(description = "评估周期:1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评估周期") + private Integer evaluationCycle; + + @Schema(description = "状态:1-启用 2-禁用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("状态") + private Integer status; + + @Schema(description = "是否允许AI生成:1-是 2-否") + @ExcelProperty("允许AI生成") + private Integer aiEnabled; + + @Schema(description = "AI提示词") + private String aiPrompt; + + @Schema(description = "报告封面图") + private String coverImage; + + @Schema(description = "排序") + @ExcelProperty("排序") + private Integer sort; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplateSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplateSaveReqVO.java new file mode 100644 index 0000000000..fcb834b608 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/EvaluationTemplateSaveReqVO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 评估模板新增/修改 Request VO") +@Data +public class EvaluationTemplateSaveReqVO { + + @Schema(description = "模板ID") + private Long id; + + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "模板名称不能为空") + private String name; + + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "模板编码不能为空") + private String code; + + @Schema(description = "模板类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "模板类型不能为空") + private Integer type; + + @Schema(description = "描述") + private String description; + + @Schema(description = "适用人群") + private String applicableCrowd; + + @Schema(description = "评估周期:1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "评估周期不能为空") + private Integer evaluationCycle; + + @Schema(description = "状态:1-启用 2-禁用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "是否允许AI生成:1-是 2-否") + private Integer aiEnabled; + + @Schema(description = "AI提示词") + private String aiPrompt; + + @Schema(description = "报告封面图") + private String coverImage; + + @Schema(description = "排序") + @Min(value = 0, message = "排序不能为负数") + private Integer sort; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentPageReqVO.java new file mode 100644 index 0000000000..0608259cde --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentPageReqVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 快捷评语分页 Request VO") +@Data +public class ReportCommentPageReqVO extends PageParam { + + @Schema(description = "评语内容") + private String content; + + @Schema(description = "评语类型:1-心理评语 2-行为表现评语 3-教育改造评语 4-劳动表现评语 5-综合评语 6-风险提示 7-建议措施") + private Integer commentType; + + @Schema(description = "适用维度") + private Long dimensionId; + + @Schema(description = "评级等级:1-优秀 2-良好 3-一般 4-较差 5-危险") + private Integer level; + + @Schema(description = "状态:1-启用 2-禁用") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentRespVO.java new file mode 100644 index 0000000000..22b1197810 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentRespVO.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 快捷评语 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ReportCommentRespVO { + + @Schema(description = "评语ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + @ExcelProperty("评语ID") + private Long id; + + @Schema(description = "评语内容", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评语内容") + private String content; + + @Schema(description = "评语类型:1-心理评语 2-行为表现评语 3-教育改造评语 4-劳动表现评语 5-综合评语 6-风险提示 7-建议措施", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("评语类型") + private Integer commentType; + + @Schema(description = "适用维度(关联维度表)") + @ExcelProperty("维度ID") + private Long dimensionId; + + @Schema(description = "维度名称") + @ExcelProperty("维度名称") + private String dimensionName; + + @Schema(description = "评级等级:1-优秀 2-良好 3-一般 4-较差 5-危险") + @ExcelProperty("评级") + private Integer level; + + @Schema(description = "标签(逗号分隔)") + @ExcelProperty("标签") + private String tags; + + @Schema(description = "使用次数") + @ExcelProperty("使用次数") + private Integer useCount; + + @Schema(description = "状态:1-启用 2-禁用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("状态") + private Integer status; + + @Schema(description = "排序") + @ExcelProperty("排序") + private Integer sort; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentSaveReqVO.java new file mode 100644 index 0000000000..128ef5f487 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/evaluationreport/vo/ReportCommentSaveReqVO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 快捷评语新增/修改 Request VO") +@Data +public class ReportCommentSaveReqVO { + + @Schema(description = "评语ID") + private Long id; + + @Schema(description = "评语内容", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "评语内容不能为空") + private String content; + + @Schema(description = "评语类型:1-心理评语 2-行为表现评语 3-教育改造评语 4-劳动表现评语 5-综合评语 6-风险提示 7-建议措施", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "评语类型不能为空") + private Integer commentType; + + @Schema(description = "适用维度(关联维度表)") + private Long dimensionId; + + @Schema(description = "维度名称") + private String dimensionName; + + @Schema(description = "评级等级:1-优秀 2-良好 3-一般 4-较差 5-危险") + private Integer level; + + @Schema(description = "标签(逗号分隔)") + private String tags; + + @Schema(description = "状态:1-启用 2-禁用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "排序") + @Min(value = 0, message = "排序不能为负数") + private Integer sort; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/PrisonerController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/PrisonerController.java index d3e6df588b..e246cbfce2 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/PrisonerController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/PrisonerController.java @@ -98,17 +98,17 @@ public class PrisonerController { if (prisoner == null) { return success(null); } - PrisonerRespVO vo = convertToRespVO(prisoner); + PrisonerRespVO vo = PrisonerConvert.INSTANCE.convert(prisoner); // 设置监区名称 if (prisoner.getPrisonAreaId() != null) { - cn.iocoder.yudao.module.prison.dal.dataobject.area.AreaDO area = areaMapper.selectById(prisoner.getPrisonAreaId()); + AreaDO area = areaMapper.selectById(prisoner.getPrisonAreaId()); if (area != null) { vo.setPrisonAreaName(area.getName()); } } // 设置监室名称 if (prisoner.getPrisonCellId() != null) { - cn.iocoder.yudao.module.prison.dal.dataobject.cell.CellDO cell = cellMapper.selectById(prisoner.getPrisonCellId()); + CellDO cell = cellMapper.selectById(prisoner.getPrisonCellId()); if (cell != null) { vo.setPrisonCellName(cell.getName()); } @@ -116,73 +116,6 @@ public class PrisonerController { return success(vo); } - /** - * 将 PrisonerDO 转换为 PrisonerRespVO - */ - private PrisonerRespVO convertToRespVO(PrisonerDO prisoner) { - PrisonerRespVO vo = new PrisonerRespVO(); - vo.setId(prisoner.getId()); - vo.setPrisonerNo(prisoner.getPrisonerNo()); - vo.setName(prisoner.getName()); - vo.setBirthday(prisoner.getBirthday()); - vo.setIdCard(prisoner.getIdCard()); - vo.setEthnicity(prisoner.getEthnicity()); - vo.setNativePlace(prisoner.getNativePlace()); - if (prisoner.getEducation() != null) { - vo.setEducation(prisoner.getEducation().getValue()); - } - vo.setOccupation(prisoner.getOccupation()); - vo.setAddress(prisoner.getAddress()); - vo.setCrime(prisoner.getCrime()); - vo.setSentenceYears(prisoner.getSentenceYears()); - vo.setSentenceMonths(prisoner.getSentenceMonths()); - vo.setLifeImprisonment(prisoner.getLifeImprisonment()); - vo.setDeathSentenceReprieve(prisoner.getDeathSentenceReprieve()); - vo.setCourtName(prisoner.getCourtName()); - vo.setJudgmentDate(prisoner.getJudgmentDate()); - vo.setJudgmentNo(prisoner.getJudgmentNo()); - vo.setOriginalSentence(prisoner.getOriginalSentence()); - vo.setImprisonmentDate(prisoner.getImprisonmentDate()); - vo.setReleaseDate(prisoner.getReleaseDate()); - vo.setReleaseType(prisoner.getReleaseType()); - vo.setReleaseReason(prisoner.getReleaseReason()); - vo.setPhoto(prisoner.getPhoto()); - vo.setPrisonAreaId(prisoner.getPrisonAreaId()); - vo.setPrisonCellId(prisoner.getPrisonCellId()); - if (prisoner.getStatus() != null) { - vo.setStatus(prisoner.getStatus().getValue()); - vo.setStatusName(prisoner.getStatus().getName()); - } - vo.setRemark(prisoner.getRemark()); - vo.setCreateTime(prisoner.getCreateTime() != null ? prisoner.getCreateTime().toString() : null); - - // 设置性别 - if (prisoner.getGender() != null) { - vo.setGender(prisoner.getGender().getValue()); - vo.setGenderName(prisoner.getGender().getName()); - } - - // 设置监管等级 - if (prisoner.getSupervisionLevel() != null) { - vo.setSupervisionLevel(prisoner.getSupervisionLevel().getValue()); - vo.setSupervisionLevelName(prisoner.getSupervisionLevel().getName()); - } - - // 设置风险等级 - if (prisoner.getRiskLevel() != null) { - vo.setRiskLevel(prisoner.getRiskLevel().getValue()); - String[] riskLabels = {"", "低风险", "中风险", "高风险", "极高风险"}; - Integer value = prisoner.getRiskLevel().getValue(); - if (value >= 1 && value <= 4) { - vo.setRiskLevelName(riskLabels[value]); - } else { - vo.setRiskLevelName(prisoner.getRiskLevel().getName()); - } - } - - return vo; - } - @GetMapping("/page") @Operation(summary = "获取服刑人员分页列表") @PreAuthorize("@ss.hasPermission('prison:prisoner:read')") diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerPageReqVO.java index 403bf81c1b..907f34f98f 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerPageReqVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerPageReqVO.java @@ -23,7 +23,7 @@ public class PrisonerPageReqVO extends PageParam { @Schema(description = "姓名", example = "张三") private String name; - @Schema(description = "性别", example = "1") + @Schema(description = "性别,参见 GenderEnum 枚举:0-未知 1-男 2-女", example = "1") private Integer gender; @Schema(description = "身份证号", example = "310101199001011234") diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerRespVO.java index 47c04c8611..b0db28de58 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.prison.controller.admin.prisoner.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -22,13 +23,14 @@ public class PrisonerRespVO { @Schema(description = "姓名", example = "张三") private String name; - @Schema(description = "性别", example = "1") + @Schema(description = "性别,参见 GenderEnum 枚举:0-未知 1-男 2-女", example = "1") private Integer gender; @Schema(description = "性别名称", example = "男") private String genderName; @Schema(description = "出生日期", example = "1990-01-01") + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate birthday; @Schema(description = "身份证号", example = "310101199001011234") @@ -71,6 +73,7 @@ public class PrisonerRespVO { private String courtName; @Schema(description = "判决日期", example = "2023-01-15") + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate judgmentDate; @Schema(description = "判决书编号", example = "(2023)沪01刑初123号") @@ -80,14 +83,19 @@ public class PrisonerRespVO { private String originalSentence; @Schema(description = "入狱日期", example = "2024-01-01") + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate imprisonmentDate; @Schema(description = "释放日期", example = "2027-07-01") + @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate releaseDate; @Schema(description = "释放类型", example = "1") private Integer releaseType; + @Schema(description = "释放类型名称", example = "刑满释放") + private String releaseTypeName; + @Schema(description = "释放原因", example = "刑满释放") private String releaseReason; @@ -109,6 +117,9 @@ public class PrisonerRespVO { @Schema(description = "监区ID", example = "1") private Long prisonAreaId; + @Schema(description = "分区ID", example = "1") + private Long subAreaId; + @Schema(description = "监区名称", example = "一监区") private String prisonAreaName; diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerSaveReqVO.java index 99dcdbdb19..06e06b0a7b 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerSaveReqVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/prisoner/vo/PrisonerSaveReqVO.java @@ -28,7 +28,7 @@ public class PrisonerSaveReqVO { @Size(max = 50, message = "姓名长度不能超过50") private String name; - @Schema(description = "性别", example = "1", required = true) + @Schema(description = "性别,参见 GenderEnum 枚举:0-未知 1-男 2-女", example = "1", required = true) @NotNull(message = "性别不能为空") private Integer gender; diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/question/PrisonQuestionController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/question/PrisonQuestionController.java index 76ca04acbc..6b110ba196 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/question/PrisonQuestionController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/question/PrisonQuestionController.java @@ -17,7 +17,6 @@ import java.io.IOException; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -28,6 +27,7 @@ import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.prison.controller.admin.question.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.question.QuestionDO; import cn.iocoder.yudao.module.prison.service.question.QuestionService; +import cn.iocoder.yudao.module.prison.convert.question.QuestionConvert; @Tag(name = "管理后台 - 问卷问题") @RestController @@ -41,6 +41,7 @@ public class PrisonQuestionController { @PostMapping("/create") @Operation(summary = "创建问卷问题") @PreAuthorize("@ss.hasPermission('prison:question:create')") + @ApiAccessLog(operateType = CREATE) public CommonResult createQuestion(@Valid @RequestBody QuestionSaveReqVO createReqVO) { return success(questionService.createQuestion(createReqVO)); } @@ -48,6 +49,7 @@ public class PrisonQuestionController { @PutMapping("/update") @Operation(summary = "更新问卷问题") @PreAuthorize("@ss.hasPermission('prison:question:update')") + @ApiAccessLog(operateType = UPDATE) public CommonResult updateQuestion(@Valid @RequestBody QuestionSaveReqVO updateReqVO) { questionService.updateQuestion(updateReqVO); return success(true); @@ -57,6 +59,7 @@ public class PrisonQuestionController { @Operation(summary = "删除问卷问题") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('prison:question:delete')") + @ApiAccessLog(operateType = DELETE) public CommonResult deleteQuestion(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { questionService.deleteQuestion(id); return success(true); @@ -65,7 +68,8 @@ public class PrisonQuestionController { @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除问卷问题") - @PreAuthorize("@ss.hasPermission('prison:question:delete')") + @PreAuthorize("@ss.hasPermission('prison:question:delete')") + @ApiAccessLog(operateType = DELETE) public CommonResult deleteQuestionList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { questionService.deleteQuestionListByIds(ids); return success(true); @@ -77,7 +81,7 @@ public class PrisonQuestionController { @PreAuthorize("@ss.hasPermission('prison:question:query')") public CommonResult getQuestion(@RequestParam("id") Long id) { QuestionDO question = questionService.getQuestion(id); - return success(BeanUtils.toBean(question, QuestionRespVO.class)); + return success(QuestionConvert.INSTANCE.convert(question)); } @GetMapping("/page") @@ -85,12 +89,13 @@ public class PrisonQuestionController { @PreAuthorize("@ss.hasPermission('prison:question:query')") public CommonResult> getQuestionPage(@Valid QuestionPageReqVO pageReqVO) { PageResult pageResult = questionService.getQuestionPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, QuestionRespVO.class)); + return success(QuestionConvert.INSTANCE.convertPage(pageResult)); } @PostMapping("/batch-update") @Operation(summary = "批量更新问卷问题") @PreAuthorize("@ss.hasPermission('prison:question:update')") + @ApiAccessLog(operateType = UPDATE) public CommonResult batchUpdateQuestion(@Valid @RequestBody QuestionBatchUpdateReqVO reqVO) { // 转换为 Service 需要的格式 List updateList = new ArrayList<>(); @@ -116,7 +121,7 @@ public class PrisonQuestionController { List list = questionService.getQuestionPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "问卷问题.xls", "数据", QuestionRespVO.class, - BeanUtils.toBean(list, QuestionRespVO.class)); + QuestionConvert.INSTANCE.convertList(list)); } } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/question/vo/QuestionRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/question/vo/QuestionRespVO.java index d445f4f611..8270a340d3 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/question/vo/QuestionRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/question/vo/QuestionRespVO.java @@ -6,6 +6,7 @@ import java.util.*; import java.math.BigDecimal; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import cn.idev.excel.annotation.*; @Schema(description = "管理后台 - 问卷问题 Response VO") @@ -82,6 +83,7 @@ public class QuestionRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnaire/PrisonQuestionnaireController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnaire/PrisonQuestionnaireController.java index 1c00b1670e..760ba1137e 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnaire/PrisonQuestionnaireController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnaire/PrisonQuestionnaireController.java @@ -17,7 +17,6 @@ import java.io.IOException; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -28,6 +27,7 @@ import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.prison.controller.admin.questionnaire.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire.QuestionnaireDO; import cn.iocoder.yudao.module.prison.service.questionnaire.QuestionnaireService; +import cn.iocoder.yudao.module.prison.convert.questionnaire.QuestionnaireConvert; @Tag(name = "管理后台 - 问卷模板") @RestController @@ -41,6 +41,7 @@ public class PrisonQuestionnaireController { @PostMapping("/create") @Operation(summary = "创建问卷模板") @PreAuthorize("@ss.hasPermission('prison:questionnaire:create')") + @ApiAccessLog(operateType = CREATE) public CommonResult createQuestionnaire(@Valid @RequestBody QuestionnaireSaveReqVO createReqVO) { return success(questionnaireService.createQuestionnaire(createReqVO)); } @@ -48,6 +49,7 @@ public class PrisonQuestionnaireController { @PutMapping("/update") @Operation(summary = "更新问卷模板") @PreAuthorize("@ss.hasPermission('prison:questionnaire:update')") + @ApiAccessLog(operateType = UPDATE) public CommonResult updateQuestionnaire(@Valid @RequestBody QuestionnaireSaveReqVO updateReqVO) { questionnaireService.updateQuestionnaire(updateReqVO); return success(true); @@ -57,6 +59,7 @@ public class PrisonQuestionnaireController { @Operation(summary = "删除问卷模板") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('prison:questionnaire:delete')") + @ApiAccessLog(operateType = DELETE) public CommonResult deleteQuestionnaire(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { questionnaireService.deleteQuestionnaire(id); return success(true); @@ -66,6 +69,7 @@ public class PrisonQuestionnaireController { @Parameter(name = "ids", description = "编号列表", required = true) @Operation(summary = "批量删除问卷模板") @PreAuthorize("@ss.hasPermission('prison:questionnaire:delete')") + @ApiAccessLog(operateType = DELETE) public CommonResult deleteQuestionnaireList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { questionnaireService.deleteQuestionnaireListByIds(ids); return success(true); @@ -77,7 +81,7 @@ public class PrisonQuestionnaireController { @PreAuthorize("@ss.hasPermission('prison:questionnaire:query')") public CommonResult getQuestionnaire(@RequestParam("id") Long id) { QuestionnaireDO questionnaire = questionnaireService.getQuestionnaire(id); - return success(BeanUtils.toBean(questionnaire, QuestionnaireRespVO.class)); + return success(QuestionnaireConvert.INSTANCE.convert(questionnaire)); } @GetMapping("/page") @@ -85,7 +89,7 @@ public class PrisonQuestionnaireController { @PreAuthorize("@ss.hasPermission('prison:questionnaire:query')") public CommonResult> getQuestionnairePage(@Valid QuestionnairePageReqVO pageReqVO) { PageResult pageResult = questionnaireService.getQuestionnairePage(pageReqVO); - return success(BeanUtils.toBean(pageResult, QuestionnaireRespVO.class)); + return success(QuestionnaireConvert.INSTANCE.convertPage(pageResult)); } @GetMapping("/export-excel") @@ -98,7 +102,7 @@ public class PrisonQuestionnaireController { List list = questionnaireService.getQuestionnairePage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "问卷模板.xls", "数据", QuestionnaireRespVO.class, - BeanUtils.toBean(list, QuestionnaireRespVO.class)); + QuestionnaireConvert.INSTANCE.convertList(list)); } } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnaire/vo/QuestionnaireRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnaire/vo/QuestionnaireRespVO.java index 90b0b5e03a..3c918b9485 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnaire/vo/QuestionnaireRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnaire/vo/QuestionnaireRespVO.java @@ -6,6 +6,7 @@ import java.util.*; import java.math.BigDecimal; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import cn.idev.excel.annotation.*; @Schema(description = "管理后台 - 问卷模板 Response VO") @@ -43,6 +44,7 @@ public class QuestionnaireRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; // ==================== 新增字段 ==================== diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/PrisonQuestionnaireRecordController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/PrisonQuestionnaireRecordController.java index ed2232cc69..7f8d777c8a 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/PrisonQuestionnaireRecordController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/PrisonQuestionnaireRecordController.java @@ -18,7 +18,6 @@ import java.math.BigDecimal; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -29,6 +28,7 @@ import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.prison.controller.admin.questionnairerecord.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.questionnairerecord.QuestionnaireRecordDO; import cn.iocoder.yudao.module.prison.service.questionnairerecord.QuestionnaireRecordService; +import cn.iocoder.yudao.module.prison.convert.questionnairerecord.QuestionnaireRecordConvert; @Tag(name = "管理后台 - 问卷答题记录/测评记录") @RestController @@ -65,10 +65,10 @@ public class PrisonQuestionnaireRecordController { return success(true); } - @PostMapping("/delete-list") + @DeleteMapping("/delete-list") @Operation(summary = "批量删除问卷答题记录") @PreAuthorize("@ss.hasPermission('prison:questionnaire-record:delete')") - public CommonResult deleteQuestionnaireRecordList(@NotEmpty(message = "编号列表不能为空") @RequestBody List ids) { + public CommonResult deleteQuestionnaireRecordList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { questionnaireRecordService.deleteQuestionnaireRecordListByIds(ids); return success(true); } @@ -79,7 +79,7 @@ public class PrisonQuestionnaireRecordController { @PreAuthorize("@ss.hasPermission('prison:questionnaire-record:query')") public CommonResult getQuestionnaireRecord(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { QuestionnaireRecordDO questionnaireRecord = questionnaireRecordService.getQuestionnaireRecord(id); - return success(BeanUtils.toBean(questionnaireRecord, QuestionnaireRecordRespVO.class)); + return success(QuestionnaireRecordConvert.INSTANCE.convert(questionnaireRecord)); } @GetMapping("/page") @@ -87,7 +87,7 @@ public class PrisonQuestionnaireRecordController { @PreAuthorize("@ss.hasPermission('prison:questionnaire-record:query')") public CommonResult> getQuestionnaireRecordPage(@Valid QuestionnaireRecordPageReqVO pageReqVO) { PageResult pageResult = questionnaireRecordService.getQuestionnaireRecordPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, QuestionnaireRecordRespVO.class)); + return success(QuestionnaireRecordConvert.INSTANCE.convertPage(pageResult)); } @GetMapping("/export-excel") @@ -100,7 +100,7 @@ public class PrisonQuestionnaireRecordController { List list = questionnaireRecordService.getQuestionnaireRecordPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "问卷答题记录.xls", "数据", QuestionnaireRecordRespVO.class, - BeanUtils.toBean(list, QuestionnaireRecordRespVO.class)); + QuestionnaireRecordConvert.INSTANCE.convertList(list)); } // ==================== 测评执行相关 ==================== diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/vo/QuestionnaireRecordRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/vo/QuestionnaireRecordRespVO.java index 2f23688b66..c8cd61e747 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/vo/QuestionnaireRecordRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/vo/QuestionnaireRecordRespVO.java @@ -6,6 +6,7 @@ import java.util.*; import java.math.BigDecimal; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import cn.idev.excel.annotation.*; /** @@ -56,14 +57,22 @@ public class QuestionnaireRecordRespVO { @Schema(description = "开始时间") @ExcelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "UTC") private LocalDateTime startTime; @Schema(description = "结束时间") @ExcelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "UTC") private LocalDateTime endTime; + @Schema(description = "答题时间") + @ExcelProperty("答题时间") + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "UTC") + private LocalDateTime answerTime; + @Schema(description = "截止日期") @ExcelProperty("截止日期") + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "UTC") private LocalDateTime deadline; // ==================== 评分信息 ==================== @@ -103,6 +112,7 @@ public class QuestionnaireRecordRespVO { @Schema(description = "评阅时间") @ExcelProperty("评阅时间") + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "UTC") private LocalDateTime evaluateTime; // ==================== 统计信息 ==================== @@ -126,6 +136,7 @@ public class QuestionnaireRecordRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss", timezone = "UTC") private LocalDateTime createTime; } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/CommentCategoryController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/CommentCategoryController.java new file mode 100644 index 0000000000..9affe5d478 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/CommentCategoryController.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.prison.controller.admin.quickcomment; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.*; +import cn.iocoder.yudao.module.prison.service.quickcomment.CommentCategoryService; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.CommentCategoryDO; + +@Tag(name = "管理后台 - 快捷评语分类") +@RestController +@RequestMapping("/prison/quick-comment/category") +@Validated +public class CommentCategoryController { + + @Resource + private CommentCategoryService commentCategoryService; + + @PostMapping("/init") + @Operation(summary = "初始化快捷评语分类和评语(预置数据)") + @PreAuthorize("@ss.hasPermission('prison:comment-category:create')") + public CommonResult initCategories() { + int count = commentCategoryService.initCategories(); + return success(count); + } + + @GetMapping("/list") + @Operation(summary = "查询分类列表") + public CommonResult> getCategoryList(CommentCategorySaveReqVO reqVO) { + return success(commentCategoryService.getCategoryList(reqVO)); + } + + @GetMapping("/get") + @Operation(summary = "获得分类详情") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult getCategory(@RequestParam("id") Long id) { + return success(commentCategoryService.getCategory(id)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/QuickCommentController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/QuickCommentController.java new file mode 100644 index 0000000000..9833ef8d66 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/QuickCommentController.java @@ -0,0 +1,115 @@ +package cn.iocoder.yudao.module.prison.controller.admin.quickcomment; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.QuickCommentDO; +import cn.iocoder.yudao.module.prison.service.quickcomment.QuickCommentService; + +@Tag(name = "管理后台 - 快捷评语") +@RestController +@RequestMapping("/prison/quick-comment") +@Validated +public class QuickCommentController { + + @Resource + private QuickCommentService quickCommentService; + + @PostMapping("/create") + @Operation(summary = "创建快捷评语") + @PreAuthorize("@ss.hasPermission('prison:quick-comment:create')") + public CommonResult createQuickComment(@Valid @RequestBody QuickCommentSaveReqVO createReqVO) { + return success(quickCommentService.createQuickComment(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新快捷评语") + @PreAuthorize("@ss.hasPermission('prison:quick-comment:update')") + public CommonResult updateQuickComment(@Valid @RequestBody QuickCommentSaveReqVO updateReqVO) { + quickCommentService.updateQuickComment(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除快捷评语") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:quick-comment:delete')") + public CommonResult deleteQuickComment(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { + quickCommentService.deleteQuickComment(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Operation(summary = "批量删除快捷评语") + @Parameter(name = "ids", description = "编号列表", required = true) + @PreAuthorize("@ss.hasPermission('prison:quick-comment:delete')") + public CommonResult deleteQuickCommentList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { + quickCommentService.deleteQuickCommentListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得快捷评语详情") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('prison:quick-comment:query')") + public CommonResult getQuickComment(@RequestParam("id") Long id) { + QuickCommentDO comment = quickCommentService.getQuickComment(id); + if (comment == null) { + return success(null); + } + return success(BeanUtils.toBean(comment, QuickCommentRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得快捷评语分页") + @PreAuthorize("@ss.hasPermission('prison:quick-comment:query')") + public CommonResult> getQuickCommentPage(@Valid QuickCommentPageReqVO pageReqVO) { + return success(quickCommentService.getQuickCommentPage(pageReqVO)); + } + + @PostMapping("/import") + @Operation(summary = "导入快捷评语") + @PreAuthorize("@ss.hasPermission('prison:quick-comment:import')") + public CommonResult importComments(@RequestBody Map params) { + Long categoryId = Long.valueOf(params.get("categoryId").toString()); + @SuppressWarnings("unchecked") + List contents = (List) params.get("contents"); + int count = quickCommentService.importComments(categoryId, contents); + return success(count); + } + + @GetMapping("/export") + @Operation(summary = "导出快捷评语 Excel") + @PreAuthorize("@ss.hasPermission('prison:quick-comment:export')") + public void exportQuickCommentExcel(@Valid QuickCommentPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = quickCommentService.getQuickCommentPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "快捷评语.xls", "数据", QuickCommentRespVO.class, list); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategoryPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategoryPageReqVO.java new file mode 100644 index 0000000000..f803a5ca03 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategoryPageReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 快捷评语分类分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CommentCategoryPageReqVO extends PageParam { + + @Schema(description = "分类名称", example = "入监综合评估") + private String name; + + @Schema(description = "评估类型:1-入监 2-定期 3-出监 4-减刑 5-专项", example = "1") + private Integer type; + + @Schema(description = "状态:0-停用 1-启用", example = "1") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategoryRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategoryRespVO.java new file mode 100644 index 0000000000..4df95be1b0 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategoryRespVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 快捷评语分类 Response VO") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class CommentCategoryRespVO { + + @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "分类名称") + private String name; + + @Schema(description = "评估类型:1-入监 2-定期 3-出监 4-减刑 5-专项") + private Integer type; + + @Schema(description = "排序") + private Integer sort; + + @Schema(description = "状态:0-停用 1-启用") + private Integer status; + + @Schema(description = "创建者") + private String creator; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategorySaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategorySaveReqVO.java new file mode 100644 index 0000000000..6cb4c95b20 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/CommentCategorySaveReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 快捷评语分类新增/修改 Request VO") +@Data +public class CommentCategorySaveReqVO { + + @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "分类名称", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "分类名称不能为空") + private String name; + + @Schema(description = "评估类型:1-入监 2-定期 3-出监 4-减刑 5-专项", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "评估类型不能为空") + private Integer type; + + @Schema(description = "排序") + private Integer sort; + + @Schema(description = "状态:0-停用 1-启用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "状态不能为空") + private Integer status; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentPageReqVO.java new file mode 100644 index 0000000000..bc85dffa45 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentPageReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +@Schema(description = "管理后台 - 快捷评语分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class QuickCommentPageReqVO extends PageParam { + + @Schema(description = "分类ID") + private Long categoryId; + + @Schema(description = "评语内容") + private String content; + + @Schema(description = "状态:0-停用 1-启用") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentRespVO.java new file mode 100644 index 0000000000..28c8a1e84f --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentRespVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; + +@Schema(description = "管理后台 - 快捷评语 Response VO") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class QuickCommentRespVO { + + @Schema(description = "评语ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "分类ID") + private Long categoryId; + + @Schema(description = "分类名称") + private String categoryName; + + @Schema(description = "评语内容") + private String content; + + @Schema(description = "使用次数") + private Integer usageCount; + + @Schema(description = "排序") + private Integer sort; + + @Schema(description = "状态:0-停用 1-启用") + private Integer status; + + @Schema(description = "创建者") + private String creator; + + @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentSaveReqVO.java new file mode 100644 index 0000000000..d7b82217ee --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/quickcomment/vo/QuickCommentSaveReqVO.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 快捷评语新增/修改 Request VO") +@Data +public class QuickCommentSaveReqVO { + + @Schema(description = "评语ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "分类ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "分类ID不能为空") + private Long categoryId; + + @Schema(description = "评语内容", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "评语内容不能为空") + private String content; + + @Schema(description = "排序") + private Integer sort; + + @Schema(description = "状态:0-停用 1-启用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "状态不能为空") + private Integer status; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/release/vo/ReleaseRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/release/vo/ReleaseRespVO.java index d1505c26fb..736f537852 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/release/vo/ReleaseRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/release/vo/ReleaseRespVO.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.prison.controller.admin.release.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import com.fasterxml.jackson.annotation.JsonFormat; import java.time.LocalDate; import java.time.LocalDateTime; @@ -45,6 +46,7 @@ public class ReleaseRespVO { private String judgmentNo; @Schema(description = "实际释放日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai") private LocalDate actualReleaseDate; @Schema(description = "交接人") diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/ReportController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/ReportController.java new file mode 100644 index 0000000000..1d5e740ed2 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/ReportController.java @@ -0,0 +1,102 @@ +package cn.iocoder.yudao.module.prison.controller.admin.report; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.prison.controller.admin.report.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.report.ReportDO; +import cn.iocoder.yudao.module.prison.service.report.ReportService; +import cn.iocoder.yudao.module.prison.controller.admin.report.vo.ReportConvert; + +@Tag(name = "管理后台 - 评估报告") +@RestController +@RequestMapping("/prison/report") +@Validated +public class ReportController { + + @Resource + private ReportService reportService; + + @PostMapping("/create") + @Operation(summary = "创建评估报告") + @PreAuthorize("@ss.hasPermission('prison:report:create')") + public CommonResult createReport(@Valid @RequestBody ReportSaveReqVO createReqVO) { + return success(reportService.createReport(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新评估报告") + @PreAuthorize("@ss.hasPermission('prison:report:update')") + public CommonResult updateReport(@Valid @RequestBody ReportSaveReqVO updateReqVO) { + reportService.updateReport(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除评估报告") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:report:delete')") + public CommonResult deleteReport(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { + reportService.deleteReport(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Operation(summary = "批量删除评估报告") + @Parameter(name = "ids", description = "编号列表", required = true) + @PreAuthorize("@ss.hasPermission('prison:report:delete')") + public CommonResult deleteReportList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { + reportService.deleteReportListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得评估报告详情") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('prison:report:query')") + public CommonResult getReport(@RequestParam("id") Long id) { + return success(ReportConvert.INSTANCE.convert(reportService.getReport(id))); + } + + @GetMapping("/page") + @Operation(summary = "获得评估报告分页") + @PreAuthorize("@ss.hasPermission('prison:report:query')") + public CommonResult> getReportPage(@Valid ReportPageReqVO pageReqVO) { + PageResult pageResult = reportService.getReportPage(pageReqVO); + return success(ReportConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出评估报告 Excel") + @PreAuthorize("@ss.hasPermission('prison:report:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportReportExcel(@Valid ReportPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = ReportConvert.INSTANCE.convertList(reportService.getReportPage(pageReqVO).getList()); + // 导出 Excel + ExcelUtils.write(response, "评估报告.xls", "数据", ReportRespVO.class, list); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportConvert.java new file mode 100644 index 0000000000..5c81e9a4d7 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportConvert.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.prison.controller.admin.report.vo; +import java.util.List; +import cn.iocoder.yudao.module.prison.dal.dataobject.report.ReportDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper(componentModel = "spring") +public interface ReportConvert { + ReportConvert INSTANCE = Mappers.getMapper(ReportConvert.class); + + ReportDO convert(ReportSaveReqVO bean); + + ReportRespVO convert(ReportDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportPageReqVO.java new file mode 100644 index 0000000000..3a871e2fe8 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportPageReqVO.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.prison.controller.admin.report.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import java.math.BigDecimal; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +@Schema(description = "管理后台 - 评估报告分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ReportPageReqVO extends PageParam { + + @Schema(description = "报告编号") + private String reportNo; + + @Schema(description = "罪犯ID") + private Long prisonerId; + + @Schema(description = "罪犯编号") + private String prisonerNo; + + @Schema(description = "罪犯姓名") + private String prisonerName; + + @Schema(description = "模板ID") + private Long templateId; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险") + private Integer riskLevel; + + @Schema(description = "状态:1-草稿 2-待审核 3-已通过 4-已退回") + private Integer status; + + @Schema(description = "报告日期") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDateTime[] reportDate; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportRespVO.java new file mode 100644 index 0000000000..4ce50e4ce0 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportRespVO.java @@ -0,0 +1,126 @@ +package cn.iocoder.yudao.module.prison.controller.admin.report.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 评估报告 Response VO") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ReportRespVO { + + @Schema(description = "报告ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "报告编号") + private String reportNo; + + @Schema(description = "罪犯ID") + private Long prisonerId; + + @Schema(description = "罪犯编号") + private String prisonerNo; + + @Schema(description = "罪犯姓名") + private String prisonerName; + + @Schema(description = "监区ID") + private Long prisonAreaId; + + @Schema(description = "监区名称") + private String prisonAreaName; + + @Schema(description = "监室ID") + private Long prisonCellId; + + @Schema(description = "监室名称") + private String prisonCellName; + + @Schema(description = "模板ID") + private Long templateId; + + @Schema(description = "模板名称") + private String templateName; + + @Schema(description = "报告标题") + private String title; + + @Schema(description = "报告日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai") + private java.time.LocalDate reportDate; + + @Schema(description = "维度内容,JSON格式") + private String dimensions; + + @Schema(description = "综合结论") + private String conclusion; + + @Schema(description = "改造建议") + private String suggestions; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险") + private Integer riskLevel; + + @Schema(description = "附件列表,JSON格式") + private String attachments; + + @Schema(description = "状态:1-草稿 2-待审核 3-已通过 4-已退回") + private Integer status; + + @Schema(description = "版本号") + private Integer version; + + @Schema(description = "数字签名") + private String signature; + + @Schema(description = "报告指纹") + private String fingerprint; + + @Schema(description = "提交人ID") + private Long submitterId; + + @Schema(description = "提交人姓名") + private String submitterName; + + @Schema(description = "提交时间") + private LocalDateTime submitTime; + + @Schema(description = "审核人ID") + private Long reviewerId; + + @Schema(description = "审核人姓名") + private String reviewerName; + + @Schema(description = "审核时间") + private LocalDateTime reviewTime; + + @Schema(description = "审核意见") + private String reviewComment; + + @Schema(description = "是否已归档") + private Boolean archived; + + @Schema(description = "归档时间") + private LocalDateTime archivedTime; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建者") + private String creator; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + + @Schema(description = "更新者") + private String updater; + + @Schema(description = "更新时间") + private LocalDateTime updateTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportSaveReqVO.java new file mode 100644 index 0000000000..800d89b694 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/report/vo/ReportSaveReqVO.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.prison.controller.admin.report.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 评估报告新增/修改 Request VO") +@Data +public class ReportSaveReqVO { + + @Schema(description = "报告ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "报告编号") + private String reportNo; + + @Schema(description = "罪犯ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "罪犯ID不能为空") + private Long prisonerId; + + @Schema(description = "罪犯编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "罪犯编号不能为空") + private String prisonerNo; + + @Schema(description = "罪犯姓名") + private String prisonerName; + + @Schema(description = "模板ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "模板ID不能为空") + private Long templateId; + + @Schema(description = "模板名称") + private String templateName; + + @Schema(description = "报告标题", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "报告标题不能为空") + private String title; + + @Schema(description = "报告日期", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "报告日期不能为空") + private java.time.LocalDate reportDate; + + @Schema(description = "维度内容,JSON格式") + private String dimensions; + + @Schema(description = "综合结论") + private String conclusion; + + @Schema(description = "改造建议") + private String suggestions; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险") + private Integer riskLevel; + + @Schema(description = "附件列表,JSON格式") + private String attachments; + + @Schema(description = "状态:1-草稿 2-待审核 3-已通过 4-已退回", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/ReportTemplateController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/ReportTemplateController.java new file mode 100644 index 0000000000..4a547189e1 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/ReportTemplateController.java @@ -0,0 +1,129 @@ +package cn.iocoder.yudao.module.prison.controller.admin.reporttemplate; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.reporttemplate.ReportTemplateDO; +import cn.iocoder.yudao.module.prison.service.reporttemplate.ReportTemplateService; +import cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo.ReportTemplateConvert; + +@Tag(name = "管理后台 - 评估报告模板") +@RestController +@RequestMapping("/prison/report-template") +@Validated +public class ReportTemplateController { + + @Resource + private ReportTemplateService reportTemplateService; + + @PostMapping("/create") + @Operation(summary = "创建评估报告模板") + @PreAuthorize("@ss.hasPermission('prison:report-template:create')") + public CommonResult createReportTemplate(@Valid @RequestBody ReportTemplateSaveReqVO createReqVO) { + return success(reportTemplateService.createReportTemplate(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新评估报告模板") + @PreAuthorize("@ss.hasPermission('prison:report-template:update')") + public CommonResult updateReportTemplate(@Valid @RequestBody ReportTemplateSaveReqVO updateReqVO) { + reportTemplateService.updateReportTemplate(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除评估报告模板") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('prison:report-template:delete')") + public CommonResult deleteReportTemplate(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) { + reportTemplateService.deleteReportTemplate(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Operation(summary = "批量删除评估报告模板") + @Parameter(name = "ids", description = "编号列表", required = true) + @PreAuthorize("@ss.hasPermission('prison:report-template:delete')") + public CommonResult deleteReportTemplateList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List ids) { + reportTemplateService.deleteReportTemplateListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得评估报告模板详情") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('prison:report-template:query')") + public CommonResult getReportTemplate(@RequestParam("id") Long id) { + return success(ReportTemplateConvert.INSTANCE.convert(reportTemplateService.getReportTemplate(id))); + } + + @GetMapping("/page") + @Operation(summary = "获得评估报告模板分页") + @PreAuthorize("@ss.hasPermission('prison:report-template:query')") + public CommonResult> getReportTemplatePage(@Valid ReportTemplatePageReqVO pageReqVO) { + PageResult pageResult = reportTemplateService.getReportTemplatePage(pageReqVO); + return success(ReportTemplateConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出评估报告模板 Excel") + @PreAuthorize("@ss.hasPermission('prison:report-template:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportReportTemplateExcel(@Valid ReportTemplatePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = ReportTemplateConvert.INSTANCE.convertList(reportTemplateService.getReportTemplatePage(pageReqVO).getList()); + // 导出 Excel + ExcelUtils.write(response, "评估报告模板.xls", "数据", ReportTemplateRespVO.class, list); + } + + @PostMapping("/copy") + @Operation(summary = "复制评估报告模板") + @Parameter(name = "id", description = "模板ID", required = true) + @PreAuthorize("@ss.hasPermission('prison:report-template:create')") + public CommonResult copyReportTemplate(@RequestParam("id") Long id) { + return success(reportTemplateService.copyReportTemplate(id)); + } + + @PutMapping("/update-status") + @Operation(summary = "更新评估报告模板状态") + @PreAuthorize("@ss.hasPermission('prison:report-template:update')") + public CommonResult updateReportTemplateStatus( + @RequestParam("id") Long id, + @RequestParam("status") Integer status) { + reportTemplateService.updateReportTemplateStatus(id, status); + return success(true); + } + + @PutMapping("/set-default") + @Operation(summary = "设为默认模板") + @Parameter(name = "id", description = "模板ID", required = true) + @PreAuthorize("@ss.hasPermission('prison:report-template:update')") + public CommonResult setReportTemplateDefault(@RequestParam("id") Long id) { + reportTemplateService.setReportTemplateDefault(id); + return success(true); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateConvert.java new file mode 100644 index 0000000000..c616de9637 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateConvert.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo; +import java.util.List; +import cn.iocoder.yudao.module.prison.dal.dataobject.reporttemplate.ReportTemplateDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper(componentModel = "spring") +public interface ReportTemplateConvert { + ReportTemplateConvert INSTANCE = Mappers.getMapper(ReportTemplateConvert.class); + + ReportTemplateDO convert(ReportTemplateSaveReqVO bean); + + ReportTemplateRespVO convert(ReportTemplateDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplatePageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplatePageReqVO.java new file mode 100644 index 0000000000..d9c8c8fccb --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplatePageReqVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +@Schema(description = "管理后台 - 评估报告模板分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ReportTemplatePageReqVO extends PageParam { + + @Schema(description = "模板名称", example = "入监综合评估模板") + private String name; + + @Schema(description = "模板类型:1-入监综合评估 2-定期考核报告 3-出监评估 4-减刑假释建议 5-专项评估") + private Integer type; + + @Schema(description = "状态:0-停用 1-启用") + private Integer status; + + @Schema(description = "是否默认") + private Boolean isDefault; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateRespVO.java new file mode 100644 index 0000000000..538fa11de3 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateRespVO.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 评估报告模板 Response VO") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ReportTemplateRespVO { + + @Schema(description = "模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "模板名称", example = "入监综合评估模板") + private String name; + + @Schema(description = "模板类型:1-入监综合评估 2-定期考核报告 3-出监评估 4-减刑假释建议 5-专项评估") + private Integer type; + + @Schema(description = "报告标题格式") + private String titleFormat; + + @Schema(description = "评估维度配置,JSON格式") + private String dimensions; + + @Schema(description = "AI提示词配置,JSON格式") + private String aiPromptConfig; + + @Schema(description = "样式配置,JSON格式") + private String styleConfig; + + @Schema(description = "状态:0-停用 1-启用") + private Integer status; + + @Schema(description = "是否默认") + private Boolean isDefault; + + @Schema(description = "版本号") + private Integer version; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建者") + private String creator; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + + @Schema(description = "更新者") + private String updater; + + @Schema(description = "更新时间") + private LocalDateTime updateTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateSaveReqVO.java new file mode 100644 index 0000000000..5e6ba25404 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/reporttemplate/vo/ReportTemplateSaveReqVO.java @@ -0,0 +1,45 @@ +package cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 评估报告模板新增/修改 Request VO") +@Data +public class ReportTemplateSaveReqVO { + + @Schema(description = "模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "入监综合评估模板") + @NotEmpty(message = "模板名称不能为空") + private String name; + + @Schema(description = "模板类型:1-入监综合评估 2-定期考核报告 3-出监评估 4-减刑假释建议 5-专项评估", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "模板类型不能为空") + private Integer type; + + @Schema(description = "报告标题格式", example = "{prisoner_name}入监综合评估报告") + private String titleFormat; + + @Schema(description = "评估维度配置,JSON格式") + private String dimensions; + + @Schema(description = "AI提示词配置,JSON格式") + private String aiPromptConfig; + + @Schema(description = "样式配置,JSON格式") + private String styleConfig; + + @Schema(description = "状态:0-停用 1-启用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "是否默认") + private Boolean isDefault; + + @Schema(description = "备注", example = "用于新入监罪犯的综合评估") + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/RiskController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/RiskController.java new file mode 100644 index 0000000000..9e64a170a5 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/RiskController.java @@ -0,0 +1,103 @@ +package cn.iocoder.yudao.module.prison.controller.admin.risk; + +import java.util.*; +import java.time.LocalDateTime; + +import cn.iocoder.yudao.module.prison.controller.admin.risk.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.risk.RiskDO; +import cn.iocoder.yudao.module.prison.service.risk.RiskService; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import org.springframework.security.access.prepost.PreAuthorize; + +import cn.iocoder.yudao.module.prison.convert.risk.RiskConvert; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; + +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; + +import lombok.RequiredArgsConstructor; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +/** + * 管理后台 - 风险评估 Controller + * + * @author xlcp + */ +@Tag(name = "管理后台 - 风险评估") +@RestController +@RequestMapping("/prison/risk") +@Validated +@RequiredArgsConstructor +public class RiskController { + + private final RiskService riskService; + + @PostMapping("/create") + @Operation(summary = "创建风险评估") + @PreAuthorize("@ss.hasPermission('prison:risk:create')") + public CommonResult create(@Valid @RequestBody RiskSaveReqVO createReqVO) { + return success(riskService.createRisk(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新风险评估") + @PreAuthorize("@ss.hasPermission('prison:risk:update')") + public CommonResult update(@Valid @RequestBody RiskSaveReqVO updateReqVO) { + riskService.updateRisk(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除风险评估") + @PreAuthorize("@ss.hasPermission('prison:risk:delete')") + public CommonResult delete(@RequestParam("id") Long id) { + riskService.deleteRisk(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Operation(summary = "批量删除风险评估") + @PreAuthorize("@ss.hasPermission('prison:risk:delete')") + public CommonResult deleteList(@RequestParam("ids") List ids) { + riskService.deleteRiskListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "查询风险评估详情") + @PreAuthorize("@ss.hasPermission('prison:risk:query')") + public CommonResult get(@RequestParam("id") Long id) { + RiskDO risk = riskService.getRisk(id); + return success(RiskConvert.INSTANCE.convert(risk)); + } + + @GetMapping("/page") + @Operation(summary = "分页查询风险评估") + @PreAuthorize("@ss.hasPermission('prison:risk:query')") + public CommonResult> page(@Valid RiskPageReqVO pageReqVO) { + PageResult pageResult = riskService.getRiskPage(pageReqVO); + return success(RiskConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出风险评估 Excel") + @PreAuthorize("@ss.hasPermission('prison:risk:export')") + public void exportExcel(@Valid RiskPageReqVO pageReqVO, + HttpServletResponse response) throws Exception { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = riskService.getRiskPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "风险评估.xls", "风险评估数据", RiskRespVO.class, + RiskConvert.INSTANCE.convertList(list)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskPageReqVO.java new file mode 100644 index 0000000000..1582fa8ef2 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskPageReqVO.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.prison.controller.admin.risk.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 管理后台 - 风险评估分页 Request VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 风险评估分页 Request VO") +@Data +public class RiskPageReqVO extends PageParam { + + @Schema(description = "关联罪犯ID", example = "12345") + private Long prisonerId; + + @Schema(description = "罪犯编号", example = "ZF2024001") + private String prisonerCode; + + @Schema(description = "罪犯姓名", example = "张三") + private String prisonerName; + + @Schema(description = "评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估", example = "1") + private Integer assessmentType; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险", example = "2") + private Integer riskLevel; + + @Schema(description = "评估人") + private String assessor; + + @Schema(description = "精神状态评估", example = "精神状态正常") + private String mentalState; + + @Schema(description = "脱逃风险评估", example = "脱逃风险低") + private String escapeRisk; + + @Schema(description = "暴力倾向评估", example = "无暴力倾向") + private String violenceRisk; + + @Schema(description = "抗改风险评估", example = "配合改造") + private String revoltRisk; + + @Schema(description = "自杀自伤风险评估", example = "无自伤倾向") + private String selfHarmRisk; + + @Schema(description = "评估日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDate[] assessmentDate; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskRespVO.java new file mode 100644 index 0000000000..5d45550592 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskRespVO.java @@ -0,0 +1,105 @@ +package cn.iocoder.yudao.module.prison.controller.admin.risk.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; +import cn.idev.excel.annotation.*; + +/** + * 管理后台 - 风险评估 Response VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 风险评估 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RiskRespVO { + + @Schema(description = "评估ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + @ExcelProperty("评估ID") + private Long id; + + @Schema(description = "关联罪犯ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12345") + @ExcelProperty("罪犯ID") + private Long prisonerId; + + @Schema(description = "罪犯编号", example = "ZF2024001") + @ExcelProperty("罪犯编号") + private String prisonerCode; + + @Schema(description = "罪犯姓名", example = "张三") + @ExcelProperty("罪犯姓名") + private String prisonerName; + + @Schema(description = "评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估", example = "1") + @ExcelProperty("评估类型") + private Integer assessmentType; + + @Schema(description = "评估日期") + @ExcelProperty("评估日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai") + private LocalDate assessmentDate; + + @Schema(description = "综合风险得分(0-100)", example = "75.5") + @ExcelProperty("综合得分") + private BigDecimal overallScore; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险", example = "2") + @ExcelProperty("风险等级") + private Integer riskLevel; + + @Schema(description = "精神状态评估", example = "精神状态正常") + @ExcelProperty("精神状态") + private String mentalState; + + @Schema(description = "脱逃风险评估", example = "脱逃风险低") + @ExcelProperty("脱逃风险") + private String escapeRisk; + + @Schema(description = "暴力倾向评估", example = "无暴力倾向") + @ExcelProperty("暴力倾向") + private String violenceRisk; + + @Schema(description = "抗改风险评估", example = "配合改造") + @ExcelProperty("抗改风险") + private String revoltRisk; + + @Schema(description = "自杀自伤风险评估", example = "无自伤倾向") + @ExcelProperty("自伤风险") + private String selfHarmRisk; + + @Schema(description = "评估建议", example = "建议加强心理辅导") + @ExcelProperty("评估建议") + private String recommendation; + + @Schema(description = "评估人") + @ExcelProperty("评估人") + private String assessor; + + @Schema(description = "评估方式:1-心理测评 2-行为观察 3-面谈评估 4-综合评估", example = "4") + @ExcelProperty("评估方式") + private Integer assessMethod; + + @Schema(description = "评估项目得分(JSON格式存储)") + @ExcelProperty("项目得分") + private String itemScores; + + @Schema(description = "评估结论", example = "综合评估为中风险") + @ExcelProperty("评估结论") + private String conclusion; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskSaveReqVO.java new file mode 100644 index 0000000000..2e54b5f715 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/risk/vo/RiskSaveReqVO.java @@ -0,0 +1,79 @@ +package cn.iocoder.yudao.module.prison.controller.admin.risk.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDate; +import jakarta.validation.constraints.*; + +/** + * 管理后台 - 风险评估新增/修改 Request VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 风险评估新增/修改 Request VO") +@Data +public class RiskSaveReqVO { + + @Schema(description = "评估ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + private Long id; + + @Schema(description = "关联罪犯ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12345") + @NotNull(message = "罪犯ID不能为空") + private Long prisonerId; + + @Schema(description = "罪犯编号", example = "ZF2024001") + private String prisonerCode; + + @Schema(description = "罪犯姓名", example = "张三") + private String prisonerName; + + @Schema(description = "评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "评估类型不能为空") + private Integer assessmentType; + + @Schema(description = "评估日期") + private LocalDate assessmentDate; + + @Schema(description = "综合风险得分(0-100)", example = "75.5") + private BigDecimal overallScore; + + @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "风险等级不能为空") + private Integer riskLevel; + + @Schema(description = "精神状态评估", example = "精神状态正常") + private String mentalState; + + @Schema(description = "脱逃风险评估", example = "脱逃风险低") + private String escapeRisk; + + @Schema(description = "暴力倾向评估", example = "无暴力倾向") + private String violenceRisk; + + @Schema(description = "抗改风险评估", example = "配合改造") + private String revoltRisk; + + @Schema(description = "自杀自伤风险评估", example = "无自伤倾向") + private String selfHarmRisk; + + @Schema(description = "评估建议", example = "建议加强心理辅导") + private String recommendation; + + @Schema(description = "评估人") + private String assessor; + + @Schema(description = "评估方式:1-心理测评 2-行为观察 3-面谈评估 4-综合评估", example = "4") + private Integer assessMethod; + + @Schema(description = "评估项目得分(JSON格式存储)", example = "[{\"itemId\":1,\"itemName\":\"项目名称\",\"score\":85,\"weight\":0.2}]") + private String itemScores; + + @Schema(description = "评估结论", example = "综合评估为中风险") + private String conclusion; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/RiskAssessmentController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/RiskAssessmentController.java new file mode 100644 index 0000000000..2f40b3bad8 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/RiskAssessmentController.java @@ -0,0 +1,102 @@ +package cn.iocoder.yudao.module.prison.controller.admin.riskassessment; + +import java.util.*; +import java.time.LocalDateTime; + +import cn.iocoder.yudao.module.prison.controller.admin.riskassessment.vo.*; +import cn.iocoder.yudao.module.prison.service.riskassessment.RiskAssessmentService; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import org.springframework.security.access.prepost.PreAuthorize; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; + +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import jakarta.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +/** + * 管理后台 - 危险评估 Controller + * + * @author xlcp + */ +@Tag(name = "管理后台 - 危险评估") +@RestController +@RequestMapping("/prison/risk-assessment") +@Validated +public class RiskAssessmentController { + + @Resource + private RiskAssessmentService riskAssessmentService; + + @PostMapping("/create") + @Operation(summary = "创建危险评估") + @PreAuthorize("@ss.hasPermission('prison:risk-assessment:create')") + public CommonResult create(@Valid @RequestBody RiskAssessmentSaveReqVO createReqVO) { + return success(riskAssessmentService.createRiskAssessment(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新危险评估") + @PreAuthorize("@ss.hasPermission('prison:risk-assessment:update')") + public CommonResult update(@Valid @RequestBody RiskAssessmentSaveReqVO updateReqVO) { + riskAssessmentService.updateRiskAssessment(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除危险评估") + @PreAuthorize("@ss.hasPermission('prison:risk-assessment:delete')") + public CommonResult delete(@RequestParam("id") Long id) { + riskAssessmentService.deleteRiskAssessment(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Operation(summary = "批量删除危险评估") + @PreAuthorize("@ss.hasPermission('prison:risk-assessment:delete')") + public CommonResult deleteList(@RequestParam("ids") List ids) { + riskAssessmentService.deleteRiskAssessmentListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "查询危险评估详情") + @PreAuthorize("@ss.hasPermission('prison:risk-assessment:query')") + public CommonResult get(@RequestParam("id") Long id) { + RiskAssessmentRespVO respVO = riskAssessmentService.getRiskAssessment(id); + return success(respVO); + } + + @GetMapping("/page") + @Operation(summary = "分页查询危险评估") + @PreAuthorize("@ss.hasPermission('prison:risk-assessment:query')") + public CommonResult> page(@Valid RiskAssessmentPageReqVO pageReqVO) { + PageResult voResult = riskAssessmentService.getRiskAssessmentPage(pageReqVO); + return success(voResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出危险评估 Excel") + @PreAuthorize("@ss.hasPermission('prison:risk-assessment:export')") + public void exportExcel(@Valid RiskAssessmentPageReqVO pageReqVO, + HttpServletResponse response) { + try { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = riskAssessmentService.getRiskAssessmentPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "危险评估.xls", "危险评估数据", RiskAssessmentRespVO.class, list); + } catch (Exception e) { + throw new RuntimeException("导出失败", e); + } + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentPageReqVO.java index 3bdd4863fb..5b09ab19d7 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentPageReqVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentPageReqVO.java @@ -21,6 +21,9 @@ public class RiskAssessmentPageReqVO extends PageParam { @Schema(description = "罪犯编号") private String prisonerNo; + @Schema(description = "罪犯姓名", example = "张三") + private String prisonerName; + @Schema(description = "评估类型:1-入狱评估 2-定期评估 3-专项评估", example = "2") private Integer assessmentType; diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentRespVO.java index b929a41182..280e51eaf3 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentRespVO.java @@ -7,6 +7,7 @@ import java.math.BigDecimal; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import cn.idev.excel.annotation.*; @Schema(description = "管理后台 - 危险评估 Response VO") @@ -26,12 +27,17 @@ public class RiskAssessmentRespVO { @ExcelProperty("罪犯编号") private String prisonerNo; + @Schema(description = "罪犯姓名", example = "张三") + @ExcelProperty("罪犯姓名") + private String prisonerName; + @Schema(description = "评估类型:1-入狱评估 2-定期评估 3-专项评估", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @ExcelProperty("评估类型:1-入狱评估 2-定期评估 3-专项评估") private Integer assessmentType; @Schema(description = "评估日期", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("评估日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai") private LocalDate assessmentDate; @Schema(description = "暴力倾向得分") @@ -72,6 +78,7 @@ public class RiskAssessmentRespVO { @Schema(description = "下次评估日期") @ExcelProperty("下次评估日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai") private LocalDate nextAssessmentDate; @Schema(description = "状态:1-待审核 2-已通过", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @@ -84,6 +91,7 @@ public class RiskAssessmentRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentSaveReqVO.java index b9792d3f9b..f336477879 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentSaveReqVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/riskassessment/vo/RiskAssessmentSaveReqVO.java @@ -39,7 +39,7 @@ public class RiskAssessmentSaveReqVO { @Schema(description = "自杀倾向得分") private BigDecimal suicideScore; - @Schema(description = "综合得分") + @Schema(description = "综合得分", hidden = true) private BigDecimal totalScore; @Schema(description = "风险等级:1-低风险 2-中风险 3-高风险 4-极高风险", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/PrisonScoreController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/PrisonScoreController.java index 994b502432..1aff5611fd 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/PrisonScoreController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/PrisonScoreController.java @@ -17,7 +17,6 @@ import java.io.IOException; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -26,7 +25,6 @@ import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.prison.controller.admin.score.vo.*; -import cn.iocoder.yudao.module.prison.dal.dataobject.score.ScoreDO; import cn.iocoder.yudao.module.prison.service.score.ScoreService; @Tag(name = "管理后台 - 计分考核") @@ -76,16 +74,14 @@ public class PrisonScoreController { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('prison:score:query')") public CommonResult getScore(@RequestParam("id") Long id) { - ScoreDO score = scoreService.getScore(id); - return success(BeanUtils.toBean(score, ScoreRespVO.class)); + return success(scoreService.getScore(id)); } @GetMapping("/page") @Operation(summary = "获得计分考核分页") @PreAuthorize("@ss.hasPermission('prison:score:query')") public CommonResult> getScorePage(@Valid ScorePageReqVO pageReqVO) { - PageResult pageResult = scoreService.getScorePage(pageReqVO); - return success(BeanUtils.toBean(pageResult, ScoreRespVO.class)); + return success(scoreService.getScorePage(pageReqVO)); } @GetMapping("/export-excel") @@ -95,10 +91,9 @@ public class PrisonScoreController { public void exportScoreExcel(@Valid ScorePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = scoreService.getScorePage(pageReqVO).getList(); + List list = scoreService.getScorePage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "计分考核.xls", "数据", ScoreRespVO.class, - BeanUtils.toBean(list, ScoreRespVO.class)); + ExcelUtils.write(response, "计分考核.xls", "数据", ScoreRespVO.class, list); } } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/vo/ScorePageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/vo/ScorePageReqVO.java index 43c1603f28..dd6f8405b0 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/vo/ScorePageReqVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/vo/ScorePageReqVO.java @@ -20,6 +20,15 @@ public class ScorePageReqVO extends PageParam { @Schema(description = "罪犯编号") private String prisonerNo; + @Schema(description = "罪犯姓名", example = "张三") + private String prisonerName; + + @Schema(description = "监区ID", example = "1") + private Long prisonAreaId; + + @Schema(description = "监室ID", example = "1") + private Long prisonCellId; + @Schema(description = "考核年份") private Integer year; diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/vo/ScoreRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/vo/ScoreRespVO.java index fb1b9ddee0..6450b387ea 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/vo/ScoreRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/score/vo/ScoreRespVO.java @@ -6,6 +6,7 @@ import java.util.*; import java.math.BigDecimal; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import cn.idev.excel.annotation.*; @Schema(description = "管理后台 - 计分考核 Response VO") @@ -25,6 +26,24 @@ public class ScoreRespVO { @ExcelProperty("罪犯编号") private String prisonerNo; + @Schema(description = "罪犯姓名", example = "张三") + @ExcelProperty("罪犯姓名") + private String prisonerName; + + @Schema(description = "监区ID", example = "1") + private Long prisonAreaId; + + @Schema(description = "监区名称", example = "一监区") + @ExcelProperty("监区") + private String prisonAreaName; + + @Schema(description = "监室ID", example = "1") + private Long prisonCellId; + + @Schema(description = "监室名称", example = "101监室") + @ExcelProperty("监室") + private String prisonCellName; + @Schema(description = "考核年份", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("考核年份") private Integer year; @@ -71,6 +90,12 @@ public class ScoreRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; + @Schema(description = "更新时间") + @ExcelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime updateTime; + } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/scorerecord/vo/ScoreDetailRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/scorerecord/vo/ScoreDetailRespVO.java index c8779735b1..27578457ad 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/scorerecord/vo/ScoreDetailRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/scorerecord/vo/ScoreDetailRespVO.java @@ -5,6 +5,7 @@ import lombok.*; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; /** * 考核记录明细 Response VO @@ -27,6 +28,7 @@ public class ScoreDetailRespVO { private String prisonerNo; @Schema(description = "记录日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai") private LocalDate recordDate; @Schema(description = "规则ID") @@ -60,6 +62,7 @@ public class ScoreDetailRespVO { private String statusName; @Schema(description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/scorerule/ScoreRuleController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/scorerule/ScoreRuleController.java index 45f3e08374..0d175b3e34 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/scorerule/ScoreRuleController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/scorerule/ScoreRuleController.java @@ -5,6 +5,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.prison.controller.admin.scorerule.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.scorerule.ScoreRuleDO; +import cn.iocoder.yudao.module.prison.enums.ScoreRuleCategoryEnum; +import cn.iocoder.yudao.module.prison.enums.ScoreRuleStatusEnum; import cn.iocoder.yudao.module.prison.service.scorerule.ScoreRuleService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -70,7 +72,7 @@ public class ScoreRuleController { @PreAuthorize("@ss.hasPermission('prison:score-rule:query')") public CommonResult getScoreRule(@RequestParam("id") Long id) { ScoreRuleDO scoreRule = scoreRuleService.getScoreRule(id); - return success(BeanUtils.toBean(scoreRule, ScoreRuleRespVO.class)); + return success(convertToRespVO(scoreRule)); } @GetMapping("/page") @@ -79,7 +81,7 @@ public class ScoreRuleController { public CommonResult> getScoreRulePage(@Valid ScoreRulePageReqVO pageReqVO) { PageResult pageResult = scoreRuleService.getScoreRulePage(pageReqVO); List list = pageResult.getList().stream() - .map(item -> BeanUtils.toBean(item, ScoreRuleRespVO.class)) + .map(this::convertToRespVO) .collect(Collectors.toList()); return success(new PageResult<>(list, pageResult.getTotal())); } @@ -91,8 +93,21 @@ public class ScoreRuleController { @RequestParam("category") Integer category) { List list = scoreRuleService.getScoreRuleListByCategory(category); return success(list.stream() - .map(item -> BeanUtils.toBean(item, ScoreRuleRespVO.class)) + .map(this::convertToRespVO) .collect(Collectors.toList())); } + /** + * 将 DO 转换为 RespVO,并填充枚举名称 + */ + private ScoreRuleRespVO convertToRespVO(ScoreRuleDO scoreRule) { + if (scoreRule == null) { + return null; + } + ScoreRuleRespVO respVO = BeanUtils.toBean(scoreRule, ScoreRuleRespVO.class); + respVO.setCategoryName(ScoreRuleCategoryEnum.getName(scoreRule.getCategory())); + respVO.setStatusName(ScoreRuleStatusEnum.getName(scoreRule.getStatus())); + return respVO; + } + } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/SituationController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/SituationController.java new file mode 100644 index 0000000000..7ecd50e160 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/SituationController.java @@ -0,0 +1,112 @@ +package cn.iocoder.yudao.module.prison.controller.admin.situation; + +import java.util.*; +import java.time.LocalDateTime; + +import cn.iocoder.yudao.module.prison.controller.admin.situation.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.situation.SituationDO; +import cn.iocoder.yudao.module.prison.service.situation.SituationService; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import org.springframework.security.access.prepost.PreAuthorize; + +import cn.iocoder.yudao.module.prison.convert.situation.SituationConvert; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.validation.annotation.Validated; + +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; + +import lombok.RequiredArgsConstructor; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +/** + * 管理后台 - 狱情收集 Controller + * + * @author xlcp + */ +@Tag(name = "管理后台 - 狱情收集") +@RestController +@RequestMapping("/prison/situation") +@Validated +@RequiredArgsConstructor +public class SituationController { + + private final SituationService situationService; + + @PostMapping("/create") + @Operation(summary = "创建狱情收集") + @PreAuthorize("@ss.hasPermission('prison:situation:create')") + public CommonResult create(@Valid @RequestBody SituationSaveReqVO createReqVO) { + return success(situationService.createSituation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新狱情收集") + @PreAuthorize("@ss.hasPermission('prison:situation:update')") + public CommonResult update(@Valid @RequestBody SituationSaveReqVO updateReqVO) { + situationService.updateSituation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除狱情收集") + @PreAuthorize("@ss.hasPermission('prison:situation:delete')") + public CommonResult delete(@RequestParam("id") Long id) { + situationService.deleteSituation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Operation(summary = "批量删除狱情收集") + @PreAuthorize("@ss.hasPermission('prison:situation:delete')") + public CommonResult deleteList(@RequestParam("ids") List ids) { + situationService.deleteSituationListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "查询狱情收集详情") + @PreAuthorize("@ss.hasPermission('prison:situation:query')") + public CommonResult get(@RequestParam("id") Long id) { + SituationDO situation = situationService.getSituation(id); + return success(SituationConvert.INSTANCE.convert(situation)); + } + + @GetMapping("/page") + @Operation(summary = "分页查询狱情收集") + @PreAuthorize("@ss.hasPermission('prison:situation:query')") + public CommonResult> page(@Valid SituationPageReqVO pageReqVO) { + PageResult pageResult = situationService.getSituationPage(pageReqVO); + return success(SituationConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/list") + @Operation(summary = "查询狱情收集列表") + @PreAuthorize("@ss.hasPermission('prison:situation:query')") + public CommonResult> list(@Valid SituationPageReqVO pageReqVO) { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = situationService.getSituationPage(pageReqVO).getList(); + return success(SituationConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出狱情收集 Excel") + @PreAuthorize("@ss.hasPermission('prison:situation:export')") + public void exportExcel(@Valid SituationPageReqVO pageReqVO, + HttpServletResponse response) throws Exception { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = situationService.getSituationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "狱情收集.xls", "狱情收集数据", SituationRespVO.class, + SituationConvert.INSTANCE.convertList(list)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationPageReqVO.java new file mode 100644 index 0000000000..fce1aaf27f --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationPageReqVO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.prison.controller.admin.situation.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 管理后台 - 狱情收集分页 Request VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 狱情收集分页 Request VO") +@Data +public class SituationPageReqVO extends PageParam { + + @Schema(description = "标题", example = "发现可疑物品") + private String title; + + @Schema(description = "分类:1-监管安全 2-教育改造 3-生活卫生 4-生产安全 5-狱内案件 6-其他", example = "1") + private Integer category; + + @Schema(description = "等级:1-一般 2-重要 3-紧急", example = "1") + private Integer level; + + @Schema(description = "来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-其他", example = "1") + private Integer source; + + @Schema(description = "处理状态:1-待处理 2-处理中 3-已处理", example = "1") + private Integer status; + + @Schema(description = "关联监区ID") + private Long areaId; + + @Schema(description = "关联监室ID") + private Long cellId; + + @Schema(description = "报告人") + private String reporter; + + @Schema(description = "处理人") + private String handler; + + @Schema(description = "发生时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] occurTime; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationRespVO.java new file mode 100644 index 0000000000..8d442c0d38 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationRespVO.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.prison.controller.admin.situation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +/** + * 管理后台 - 狱情收集 Response VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 狱情收集 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SituationRespVO { + + @Schema(description = "狱情ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + @ExcelProperty("狱情ID") + private Long id; + + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "发现可疑物品") + @ExcelProperty("标题") + private String title; + + @Schema(description = "详情内容", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("详情内容") + private String content; + + @Schema(description = "分类:1-监管安全 2-教育改造 3-生活卫生 4-生产安全 5-狱内案件 6-其他", example = "1") + @ExcelProperty("分类") + private Integer category; + + @Schema(description = "等级:1-一般 2-重要 3-紧急", example = "1") + @ExcelProperty("等级") + private Integer level; + + @Schema(description = "来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-其他", example = "1") + @ExcelProperty("来源") + private Integer source; + + @Schema(description = "处理状态:1-待处理 2-处理中 3-已处理", example = "1") + @ExcelProperty("处理状态") + private Integer status; + + @Schema(description = "关联监区ID") + @ExcelProperty("关联监区ID") + private Long areaId; + + @Schema(description = "关联监室ID") + @ExcelProperty("关联监室ID") + private Long cellId; + + @Schema(description = "报告人") + @ExcelProperty("报告人") + private String reporter; + + @Schema(description = "处理人") + @ExcelProperty("处理人") + private String handler; + + @Schema(description = "处理时间") + @ExcelProperty("处理时间") + private LocalDateTime handleTime; + + @Schema(description = "处理结果") + @ExcelProperty("处理结果") + private String handleResult; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "发生时间") + @ExcelProperty("发生时间") + private LocalDateTime occurTime; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationSaveReqVO.java new file mode 100644 index 0000000000..fb10f8e550 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/situation/vo/SituationSaveReqVO.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.prison.controller.admin.situation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +/** + * 管理后台 - 狱情收集新增/修改 Request VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 狱情收集新增/修改 Request VO") +@Data +public class SituationSaveReqVO { + + @Schema(description = "狱情ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + private Long id; + + @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "发现可疑物品") + @NotEmpty(message = "标题不能为空") + private String title; + + @Schema(description = "详情内容", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "详情内容不能为空") + private String content; + + @Schema(description = "分类:1-监管安全 2-教育改造 3-生活卫生 4-生产安全 5-狱内案件 6-其他", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "分类不能为空") + private Integer category; + + @Schema(description = "等级:1-一般 2-重要 3-紧急", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "等级不能为空") + private Integer level; + + @Schema(description = "来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-其他", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "来源不能为空") + private Integer source; + + @Schema(description = "处理状态:1-待处理 2-处理中 3-已处理", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "处理状态不能为空") + private Integer status; + + @Schema(description = "关联监区ID") + private Long areaId; + + @Schema(description = "关联监室ID") + private Long cellId; + + @Schema(description = "报告人") + private String reporter; + + @Schema(description = "处理人") + private String handler; + + @Schema(description = "处理时间") + private java.time.LocalDateTime handleTime; + + @Schema(description = "处理结果") + private String handleResult; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "发生时间") + private java.time.LocalDateTime occurTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/WarningController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/WarningController.java new file mode 100644 index 0000000000..65fc30e2ff --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/WarningController.java @@ -0,0 +1,103 @@ +package cn.iocoder.yudao.module.prison.controller.admin.warning; + +import java.util.*; +import java.time.LocalDateTime; + +import cn.iocoder.yudao.module.prison.controller.admin.warning.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.warning.WarningDO; +import cn.iocoder.yudao.module.prison.service.warning.WarningService; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import org.springframework.security.access.prepost.PreAuthorize; + +import cn.iocoder.yudao.module.prison.convert.warning.WarningConvert; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; + +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; + +import lombok.RequiredArgsConstructor; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +/** + * 管理后台 - 预警信息 Controller + * + * @author xlcp + */ +@Tag(name = "管理后台 - 预警信息") +@RestController +@RequestMapping("/prison/warning") +@Validated +@RequiredArgsConstructor +public class WarningController { + + private final WarningService warningService; + + @PostMapping("/create") + @Operation(summary = "创建预警信息") + @PreAuthorize("@ss.hasPermission('prison:warning:create')") + public CommonResult create(@Valid @RequestBody WarningSaveReqVO createReqVO) { + return success(warningService.createWarning(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新预警信息") + @PreAuthorize("@ss.hasPermission('prison:warning:update')") + public CommonResult update(@Valid @RequestBody WarningSaveReqVO updateReqVO) { + warningService.updateWarning(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除预警信息") + @PreAuthorize("@ss.hasPermission('prison:warning:delete')") + public CommonResult delete(@RequestParam("id") Long id) { + warningService.deleteWarning(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Operation(summary = "批量删除预警信息") + @PreAuthorize("@ss.hasPermission('prison:warning:delete')") + public CommonResult deleteList(@RequestParam("ids") List ids) { + warningService.deleteWarningListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "查询预警信息详情") + @PreAuthorize("@ss.hasPermission('prison:warning:query')") + public CommonResult get(@RequestParam("id") Long id) { + WarningDO warning = warningService.getWarning(id); + return success(WarningConvert.INSTANCE.convert(warning)); + } + + @GetMapping("/page") + @Operation(summary = "分页查询预警信息") + @PreAuthorize("@ss.hasPermission('prison:warning:query')") + public CommonResult> page(@Valid WarningPageReqVO pageReqVO) { + PageResult pageResult = warningService.getWarningPage(pageReqVO); + return success(WarningConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出预警信息 Excel") + @PreAuthorize("@ss.hasPermission('prison:warning:export')") + public void exportExcel(@Valid WarningPageReqVO pageReqVO, + HttpServletResponse response) throws Exception { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = warningService.getWarningPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "预警信息.xls", "预警信息数据", WarningRespVO.class, + WarningConvert.INSTANCE.convertList(list)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningPageReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningPageReqVO.java new file mode 100644 index 0000000000..f023b99d5e --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningPageReqVO.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.prison.controller.admin.warning.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 管理后台 - 预警信息分页 Request VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 预警信息分页 Request VO") +@Data +public class WarningPageReqVO extends PageParam { + + @Schema(description = "预警标题", example = "发现可疑物品") + private String title; + + @Schema(description = "预警类型:1-安全预警 2-监管预警 3-改造预警 4-生产预警 5-生活卫生预警 6-其他", example = "1") + private Integer type; + + @Schema(description = "预警等级:1-一般 2-重要 3-紧急 4-严重", example = "1") + private Integer level; + + @Schema(description = "预警状态:1-待核实 2-已核实 3-已处置 4-已解除", example = "1") + private Integer status; + + @Schema(description = "预警来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-智能分析 6-其他", example = "1") + private Integer source; + + @Schema(description = "关联狱情ID") + private Long situationId; + + @Schema(description = "关联监区ID") + private Long areaId; + + @Schema(description = "关联监室ID") + private Long cellId; + + @Schema(description = "核实人") + private String verifier; + + @Schema(description = "处置人") + private String handler; + + @Schema(description = "解除人") + private String releaser; + + @Schema(description = "预警时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] alertTime; + + @Schema(description = "发生时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] occurTime; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningRespVO.java new file mode 100644 index 0000000000..66051f225c --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningRespVO.java @@ -0,0 +1,123 @@ +package cn.iocoder.yudao.module.prison.controller.admin.warning.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; +import cn.idev.excel.annotation.*; + +/** + * 管理后台 - 预警信息 Response VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 预警信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class WarningRespVO { + + @Schema(description = "预警ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + @ExcelProperty("预警ID") + private Long id; + + @Schema(description = "预警标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "发现可疑物品") + @ExcelProperty("预警标题") + private String title; + + @Schema(description = "预警内容", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("预警内容") + private String content; + + @Schema(description = "预警类型:1-安全预警 2-监管预警 3-改造预警 4-生产预警 5-生活卫生预警 6-其他", example = "1") + @ExcelProperty("预警类型") + private Integer type; + + @Schema(description = "预警等级:1-一般 2-重要 3-紧急 4-严重", example = "1") + @ExcelProperty("预警等级") + private Integer level; + + @Schema(description = "预警状态:1-待核实 2-已核实 3-已处置 4-已解除", example = "1") + @ExcelProperty("预警状态") + private Integer status; + + @Schema(description = "预警来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-智能分析 6-其他", example = "1") + @ExcelProperty("预警来源") + private Integer source; + + @Schema(description = "关联狱情ID") + @ExcelProperty("关联狱情ID") + private Long situationId; + + @Schema(description = "关联监区ID") + @ExcelProperty("关联监区ID") + private Long areaId; + + @Schema(description = "关联监室ID") + @ExcelProperty("关联监室ID") + private Long cellId; + + @Schema(description = "预警时间") + @ExcelProperty("预警时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime alertTime; + + @Schema(description = "核实时间") + @ExcelProperty("核实时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime verifyTime; + + @Schema(description = "核实人") + @ExcelProperty("核实人") + private String verifier; + + @Schema(description = "核实结果") + @ExcelProperty("核实结果") + private String verifyResult; + + @Schema(description = "处置时间") + @ExcelProperty("处置时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime handleTime; + + @Schema(description = "处置人") + @ExcelProperty("处置人") + private String handler; + + @Schema(description = "处置方式") + @ExcelProperty("处置方式") + private String handleMethod; + + @Schema(description = "处置结果") + @ExcelProperty("处置结果") + private String handleResult; + + @Schema(description = "解除时间") + @ExcelProperty("解除时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime releaseTime; + + @Schema(description = "解除人") + @ExcelProperty("解除人") + private String releaser; + + @Schema(description = "解除原因") + @ExcelProperty("解除原因") + private String releaseReason; + + @Schema(description = "发生时间") + @ExcelProperty("发生时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime occurTime; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime createTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningSaveReqVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningSaveReqVO.java new file mode 100644 index 0000000000..7c682266ef --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/warning/vo/WarningSaveReqVO.java @@ -0,0 +1,92 @@ +package cn.iocoder.yudao.module.prison.controller.admin.warning.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +/** + * 管理后台 - 预警信息新增/修改 Request VO + * + * @author xlcp + */ +@Schema(description = "管理后台 - 预警信息新增/修改 Request VO") +@Data +public class WarningSaveReqVO { + + @Schema(description = "预警ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19443") + private Long id; + + @Schema(description = "预警标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "发现可疑物品") + @NotEmpty(message = "预警标题不能为空") + private String title; + + @Schema(description = "预警内容", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "预警内容不能为空") + private String content; + + @Schema(description = "预警类型:1-安全预警 2-监管预警 3-改造预警 4-生产预警 5-生活卫生预警 6-其他", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "预警类型不能为空") + private Integer type; + + @Schema(description = "预警等级:1-一般 2-重要 3-紧急 4-严重", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "预警等级不能为空") + private Integer level; + + @Schema(description = "预警状态:1-待核实 2-已核实 3-已处置 4-已解除", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "预警状态不能为空") + private Integer status; + + @Schema(description = "预警来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-智能分析 6-其他", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "预警来源不能为空") + private Integer source; + + @Schema(description = "关联狱情ID") + private Long situationId; + + @Schema(description = "关联监区ID") + private Long areaId; + + @Schema(description = "关联监室ID") + private Long cellId; + + @Schema(description = "预警时间") + private java.time.LocalDateTime alertTime; + + @Schema(description = "核实时间") + private java.time.LocalDateTime verifyTime; + + @Schema(description = "核实人") + private String verifier; + + @Schema(description = "核实结果") + private String verifyResult; + + @Schema(description = "处置时间") + private java.time.LocalDateTime handleTime; + + @Schema(description = "处置人") + private String handler; + + @Schema(description = "处置方式") + private String handleMethod; + + @Schema(description = "处置结果") + private String handleResult; + + @Schema(description = "解除时间") + private java.time.LocalDateTime releaseTime; + + @Schema(description = "解除人") + private String releaser; + + @Schema(description = "解除原因") + private String releaseReason; + + @Schema(description = "发生时间") + private java.time.LocalDateTime occurTime; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/evaluationreport/EvaluationReportConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/evaluationreport/EvaluationReportConvert.java new file mode 100644 index 0000000000..9b68651f0f --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/evaluationreport/EvaluationReportConvert.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.prison.convert.evaluationreport; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.*; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 评估报告 Convert + * + * @author xlcp + */ +@Mapper +public interface EvaluationReportConvert { + + EvaluationReportConvert INSTANCE = Mappers.getMapper(EvaluationReportConvert.class); + + // ========== 模板 ========== + + EvaluationTemplateDO convert(EvaluationTemplateSaveReqVO bean); + EvaluationTemplateRespVO convert(EvaluationTemplateDO bean); + List convertTemplateList(List list); + PageResult convertTemplatePage(PageResult page); + + // ========== 维度 ========== + + EvaluationDimensionDO convert(EvaluationDimensionSaveReqVO bean); + EvaluationDimensionRespVO convert(EvaluationDimensionDO bean); + List convertDimensionList(List list); + PageResult convertDimensionPage(PageResult page); + + // ========== 报告 ========== + + EvaluationReportDO convert(EvaluationReportSaveReqVO bean); + EvaluationReportRespVO convert(EvaluationReportDO bean); + List convertReportList(List list); + PageResult convertReportPage(PageResult page); + + // ========== 维度数据 ========== + + EvaluationDimensionDataDO convert(EvaluationDimensionDataSaveReqVO bean); + EvaluationDimensionDataRespVO convert(EvaluationDimensionDataDO bean); + List convertDimensionDataList(List list); + + // ========== 评语 ========== + + ReportCommentDO convert(ReportCommentSaveReqVO bean); + ReportCommentRespVO convert(ReportCommentDO bean); + List convertCommentList(List list); + PageResult convertCommentPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/prisoner/PrisonerConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/prisoner/PrisonerConvert.java index 6e36752a5e..cf4d1df39d 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/prisoner/PrisonerConvert.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/prisoner/PrisonerConvert.java @@ -3,10 +3,12 @@ package cn.iocoder.yudao.module.prison.convert.prisoner; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.prison.controller.admin.prisoner.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.PrisonerDO; +import cn.iocoder.yudao.module.prison.enums.EducationEnum; import cn.iocoder.yudao.module.prison.enums.GenderEnum; -import cn.iocoder.yudao.module.prison.enums.SupervisionLevelEnum; import cn.iocoder.yudao.module.prison.enums.PrisonerStatusEnum; +import cn.iocoder.yudao.module.prison.enums.ReleaseTypeEnum; import cn.iocoder.yudao.module.prison.enums.RiskLevelEnum; +import cn.iocoder.yudao.module.prison.enums.SupervisionLevelEnum; import org.mapstruct.AfterMapping; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -52,6 +54,80 @@ public interface PrisonerConvert { return value != null ? PrisonerStatusEnum.fromValue(value) : null; } + // 枚举值转换工具方法 + @Named("genderToValue") + default Integer genderToValue(GenderEnum gender) { + return gender != null ? gender.getValue() : null; + } + + @Named("educationToValue") + default Integer educationToValue(EducationEnum education) { + return education != null ? education.getValue() : null; + } + + @Named("supervisionLevelToValue") + default Integer supervisionLevelToValue(SupervisionLevelEnum level) { + return level != null ? level.getValue() : null; + } + + @Named("riskLevelToValue") + default Integer riskLevelToValue(RiskLevelEnum level) { + return level != null ? level.getValue() : null; + } + + @Named("releaseTypeToValue") + default Integer releaseTypeToValue(ReleaseTypeEnum type) { + return type != null ? type.getValue() : null; + } + + @Named("statusToValue") + default Integer statusToValue(PrisonerStatusEnum status) { + return status != null ? status.getValue() : null; + } + + // 枚举名称转换工具方法 + @Named("genderToName") + default String genderToName(GenderEnum gender) { + return gender != null ? gender.getName() : null; + } + + @Named("educationToName") + default String educationToName(EducationEnum education) { + return education != null ? education.getName() : null; + } + + @Named("supervisionLevelToName") + default String supervisionLevelToName(SupervisionLevelEnum level) { + return level != null ? level.getName() : null; + } + + @Named("riskLevelToName") + default String riskLevelToName(RiskLevelEnum level) { + return level != null ? level.getName() : null; + } + + @Named("releaseTypeToName") + default String releaseTypeToName(ReleaseTypeEnum type) { + return type != null ? type.getName() : null; + } + + @Named("statusToName") + default String statusToName(PrisonerStatusEnum status) { + return status != null ? status.getName() : null; + } + + @Mapping(target = "gender", source = "gender", qualifiedByName = "genderToValue") + @Mapping(target = "genderName", source = "gender", qualifiedByName = "genderToName") + @Mapping(target = "education", source = "education", qualifiedByName = "educationToValue") + @Mapping(target = "educationName", source = "education", qualifiedByName = "educationToName") + @Mapping(target = "supervisionLevel", source = "supervisionLevel", qualifiedByName = "supervisionLevelToValue") + @Mapping(target = "supervisionLevelName", source = "supervisionLevel", qualifiedByName = "supervisionLevelToName") + @Mapping(target = "riskLevel", source = "riskLevel", qualifiedByName = "riskLevelToValue") + @Mapping(target = "riskLevelName", source = "riskLevel", qualifiedByName = "riskLevelToName") + @Mapping(target = "releaseType", source = "releaseType", qualifiedByName = "releaseTypeToValue") + @Mapping(target = "releaseTypeName", source = "releaseType", qualifiedByName = "releaseTypeToName") + @Mapping(target = "status", source = "status", qualifiedByName = "statusToValue") + @Mapping(target = "statusName", source = "status", qualifiedByName = "statusToName") PrisonerRespVO convert(PrisonerDO bean); List convertList(List list); @@ -62,42 +138,4 @@ public interface PrisonerConvert { List convertExcelListFromRespVO(List list); - @AfterMapping - default void afterConvert(PrisonerDO source, PrisonerRespVO target) { - // 设置性别 - if (source.getGender() != null) { - target.setGender(source.getGender().getValue()); - target.setGenderName(source.getGender().getName()); - } - // 设置监管等级 - if (source.getSupervisionLevel() != null) { - target.setSupervisionLevel(source.getSupervisionLevel().getValue()); - target.setSupervisionLevelName(source.getSupervisionLevel().getName()); - } - // 设置风险等级 - if (source.getRiskLevel() != null) { - target.setRiskLevel(source.getRiskLevel().getValue()); - // 风险等级标签 - String[] riskLabels = {"", "低风险", "中风险", "高风险", "极高风险"}; - Integer value = source.getRiskLevel().getValue(); - if (value >= 1 && value <= 4) { - target.setRiskLevelName(riskLabels[value]); - } - } - // 设置状态 - if (source.getStatus() != null) { - target.setStatus(source.getStatus().getValue()); - target.setStatusName(source.getStatus().getName()); - } - } - - @AfterMapping - default void afterConvertPage(PageResult page, PageResult result) { - if (page.getList() != null) { - for (int i = 0; i < page.getList().size(); i++) { - afterConvert(page.getList().get(i), result.getList().get(i)); - } - } - } - } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/question/QuestionConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/question/QuestionConvert.java new file mode 100644 index 0000000000..01b1193558 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/question/QuestionConvert.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.prison.convert.question; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.prison.controller.admin.question.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.question.QuestionDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 问卷问题 Convert + * + * @author xlcp + */ +@Mapper +public interface QuestionConvert { + + QuestionConvert INSTANCE = Mappers.getMapper(QuestionConvert.class); + + QuestionDO convert(QuestionSaveReqVO bean); + + QuestionRespVO convert(QuestionDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/questionnaire/QuestionnaireConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/questionnaire/QuestionnaireConvert.java new file mode 100644 index 0000000000..0ef1326509 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/questionnaire/QuestionnaireConvert.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.prison.convert.questionnaire; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.prison.controller.admin.questionnaire.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire.QuestionnaireDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 问卷模板 Convert + * + * @author xlcp + */ +@Mapper +public interface QuestionnaireConvert { + + QuestionnaireConvert INSTANCE = Mappers.getMapper(QuestionnaireConvert.class); + + QuestionnaireDO convert(QuestionnaireSaveReqVO bean); + + QuestionnaireRespVO convert(QuestionnaireDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/questionnairerecord/QuestionnaireRecordConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/questionnairerecord/QuestionnaireRecordConvert.java new file mode 100644 index 0000000000..8a1ab7f0c5 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/questionnairerecord/QuestionnaireRecordConvert.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.prison.convert.questionnairerecord; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.prison.controller.admin.questionnairerecord.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.questionnairerecord.QuestionnaireRecordDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 问卷答题记录 Convert + * + * @author xlcp + */ +@Mapper +public interface QuestionnaireRecordConvert { + + QuestionnaireRecordConvert INSTANCE = Mappers.getMapper(QuestionnaireRecordConvert.class); + + QuestionnaireRecordDO convert(QuestionnaireRecordSaveReqVO bean); + + QuestionnaireRecordRespVO convert(QuestionnaireRecordDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/risk/RiskConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/risk/RiskConvert.java new file mode 100644 index 0000000000..09f2174cc5 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/risk/RiskConvert.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.prison.convert.risk; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.prison.controller.admin.risk.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.risk.RiskDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 风险评估 Convert + * + * @author xlcp + */ +@Mapper +public interface RiskConvert { + + RiskConvert INSTANCE = Mappers.getMapper(RiskConvert.class); + + RiskDO convert(RiskSaveReqVO bean); + + RiskRespVO convert(RiskDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/riskassessment/RiskAssessmentConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/riskassessment/RiskAssessmentConvert.java new file mode 100644 index 0000000000..f4ea298a36 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/riskassessment/RiskAssessmentConvert.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.prison.convert.riskassessment; + +import java.util.*; + +import cn.iocoder.yudao.module.prison.controller.admin.riskassessment.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.riskassessment.RiskAssessmentDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import org.springframework.stereotype.Component; + +/** + * 危险评估 Convert - 手动实现 + * + * @author xlcp + */ +@Component +public class RiskAssessmentConvert { + + public RiskAssessmentRespVO convert(RiskAssessmentDO bean) { + if (bean == null) { + return null; + } + RiskAssessmentRespVO respVO = new RiskAssessmentRespVO(); + respVO.setId(bean.getId()); + respVO.setPrisonerId(bean.getPrisonerId()); + respVO.setPrisonerNo(bean.getPrisonerNo()); + respVO.setAssessmentType(bean.getAssessmentType()); + respVO.setAssessmentDate(bean.getAssessmentDate()); + respVO.setViolenceScore(bean.getViolenceScore()); + respVO.setEscapeScore(bean.getEscapeScore()); + respVO.setSuicideScore(bean.getSuicideScore()); + respVO.setTotalScore(bean.getTotalScore()); + respVO.setRiskLevel(bean.getRiskLevel()); + respVO.setRiskFactors(bean.getRiskFactors()); + respVO.setSuggestions(bean.getSuggestions()); + respVO.setAssessorId(bean.getAssessorId()); + respVO.setAssessorName(bean.getAssessorName()); + respVO.setNextAssessmentDate(bean.getNextAssessmentDate()); + respVO.setStatus(bean.getStatus()); + respVO.setRemark(bean.getRemark()); + respVO.setCreateTime(bean.getCreateTime()); + return respVO; + } + + public List convertList(List list) { + if (list == null) { + return null; + } + List result = new ArrayList<>(list.size()); + for (RiskAssessmentDO item : list) { + result.add(convert(item)); + } + return result; + } + + public PageResult convertPage(PageResult page) { + if (page == null) { + return null; + } + return new PageResult<>(convertList(page.getList()), page.getTotal()); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/situation/SituationConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/situation/SituationConvert.java new file mode 100644 index 0000000000..7f56dc2dc3 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/situation/SituationConvert.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.prison.convert.situation; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.prison.controller.admin.situation.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.situation.SituationDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 狱情收集 Convert + * + * @author xlcp + */ +@Mapper +public interface SituationConvert { + + SituationConvert INSTANCE = Mappers.getMapper(SituationConvert.class); + + SituationDO convert(SituationSaveReqVO bean); + + SituationRespVO convert(SituationDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/warning/WarningConvert.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/warning/WarningConvert.java new file mode 100644 index 0000000000..9950340759 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/convert/warning/WarningConvert.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.prison.convert.warning; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.prison.controller.admin.warning.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.warning.WarningDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 预警信息 Convert + * + * @author xlcp + */ +@Mapper +public interface WarningConvert { + + WarningConvert INSTANCE = Mappers.getMapper(WarningConvert.class); + + WarningDO convert(WarningSaveReqVO bean); + + WarningRespVO convert(WarningDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/PrisonerDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/PrisonerDO.java index b07c597ee7..e9f36f1525 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/PrisonerDO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/PrisonerDO.java @@ -135,7 +135,7 @@ public class PrisonerDO extends BaseDO { /** * 释放类型:1-刑满 2-假释 3-暂予监外执行 4-减刑 5-移交 6-死亡 */ - private Integer releaseType; + private ReleaseTypeEnum releaseType; /** * 释放原因 diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/consumption/ConsumptionDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/consumption/ConsumptionDO.java index 9e351ef655..1479c39237 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/consumption/ConsumptionDO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/consumption/ConsumptionDO.java @@ -46,6 +46,7 @@ public class ConsumptionDO extends BaseDO { /** * 订单总金额 */ + @TableField("total_amount") private BigDecimal totalAmount; /** * 账户余额(消费后) diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/consumption/ConsumptionDetailDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/consumption/ConsumptionDetailDO.java index c84a99eb74..b3f24bcd06 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/consumption/ConsumptionDetailDO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/consumption/ConsumptionDetailDO.java @@ -53,6 +53,7 @@ public class ConsumptionDetailDO extends BaseDO { /** * 小计金额 */ + @TableField("subtotal") private BigDecimal subtotal; } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationDimensionDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationDimensionDO.java new file mode 100644 index 0000000000..a22d57ef39 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationDimensionDO.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 评估维度配置 DO + * + * @author xlcp + */ +@TableName("prison_evaluation_dimension") +@KeySequence("prison_evaluation_dimension_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EvaluationDimensionDO extends BaseDO { + + /** + * 维度ID + */ + @TableId + private Long id; + /** + * 模板ID + */ + private Long templateId; + /** + * 维度名称 + */ + private String name; + /** + * 维度编码 + */ + private String code; + /** + * 维度描述 + */ + private String description; + /** + * 维度类型:1-心理测评 2-行为表现 3-教育改造 4-劳动表现 5-人际交往 6-自评/他评 + */ + private Integer dimensionType; + /** + * 权重(百分比) + */ + private BigDecimal weight; + /** + * 评分规则:1-分值越高越好 2-分值越低越好 3-区间评分 + */ + private Integer scoreRule; + /** + * 最大分值 + */ + private BigDecimal maxScore; + /** + * 最小分值 + */ + private BigDecimal minScore; + /** + * 及格分值 + */ + private BigDecimal passScore; + /** + * 评估方式:1-问卷测评 2-量表评分 3-行为观察 4-AI分析 5-综合评定 + */ + private Integer evaluationMethod; + /** + * 问题列表(JSON格式) + */ + private String questions; + /** + * 排序 + */ + private Integer sort; + /** + * 是否启用:1-启用 2-禁用 + */ + private Integer status; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationDimensionDataDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationDimensionDataDO.java new file mode 100644 index 0000000000..57c95b7939 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationDimensionDataDO.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 报告维度数据 DO + * + * @author xlcp + */ +@TableName("prison_evaluation_dimension_data") +@KeySequence("prison_evaluation_dimension_data_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EvaluationDimensionDataDO extends BaseDO { + + /** + * 数据ID + */ + @TableId + private Long id; + /** + * 报告ID + */ + private Long reportId; + /** + * 维度ID + */ + private Long dimensionId; + /** + * 维度名称 + */ + private String dimensionName; + /** + * 维度编码 + */ + private String dimensionCode; + /** + * 维度类型 + */ + private Integer dimensionType; + /** + * 得分 + */ + private BigDecimal score; + /** + * 满分 + */ + private BigDecimal fullScore; + /** + * 权重得分 + */ + private BigDecimal weightedScore; + /** + * 评级:1-优秀 2-良好 3-一般 4-较差 + */ + private Integer level; + /** + * 维度结论 + */ + private String conclusion; + /** + * 维度评语 + */ + private String comment; + /** + * AI分析内容 + */ + private String aiAnalysis; + /** + * 回答详情(JSON格式) + */ + private String answerDetails; + /** + * 排序 + */ + private Integer sort; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationReportDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationReportDO.java new file mode 100644 index 0000000000..cc75a479a7 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationReportDO.java @@ -0,0 +1,147 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 评估报告 DO + * + * @author xlcp + */ +@TableName("prison_evaluation_report") +@KeySequence("prison_evaluation_report_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EvaluationReportDO extends BaseDO { + + /** + * 报告ID + */ + @TableId + private Long id; + /** + * 报告编号 + */ + private String reportNo; + /** + * 罪犯ID + */ + private Long prisonerId; + /** + * 罪犯编号 + */ + private String prisonerNo; + /** + * 罪犯姓名 + */ + private String prisonerName; + /** + * 模板ID + */ + private Long templateId; + /** + * 模板名称 + */ + private String templateName; + /** + * 评估类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估 + */ + private Integer evaluationType; + /** + * 评估周期:1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估 + */ + private Integer evaluationCycle; + /** + * 评估日期 + */ + private LocalDateTime evaluationDate; + /** + * 评估人员ID + */ + private Long evaluatorId; + /** + * 评估人员姓名 + */ + private String evaluatorName; + /** + * 监区ID + */ + private Long areaId; + /** + * 监区名称 + */ + private String areaName; + /** + * 总分 + */ + private BigDecimal totalScore; + /** + * 评级:1-优秀 2-良好 3-一般 4-较差 5-危险 + */ + private Integer level; + /** + * 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险 + */ + private Integer riskLevel; + /** + * 风险得分 + */ + private BigDecimal riskScore; + /** + * AI生成状态:1-待生成 2-生成中 3-已完成 4-生成失败 + */ + private Integer aiStatus; + /** + * AI生成内容 + */ + private String aiContent; + /** + * AI生成报告内容 + */ + private String aiReportContent; + /** + * 报告状态:1-草稿 2-待审核 3-已审核 4-已作废 + */ + private Integer status; + /** + * 审核人ID + */ + private Long auditorId; + /** + * 审核人姓名 + */ + private String auditorName; + /** + * 审核时间 + */ + private LocalDateTime auditTime; + /** + * 审核意见 + */ + private String auditOpinion; + /** + * 报告结论 + */ + private String conclusion; + /** + * 改造建议 + */ + private String suggestions; + /** + * 报告PDF路径 + */ + private String pdfPath; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationTemplateDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationTemplateDO.java new file mode 100644 index 0000000000..42aef39b74 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/EvaluationTemplateDO.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableField; + +/** + * 评估报告模板 DO + * + * @author xlcp + */ +@TableName("prison_evaluation_template") +@KeySequence("prison_evaluation_template_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EvaluationTemplateDO extends BaseDO { + + /** + * 模板ID + */ + @TableId + private Long id; + /** + * 模板名称 + */ + private String name; + /** + * 模板编码 + */ + private String code; + /** + * 模板类型:1-心理评估 2-危险性评估 3-改造表现评估 4-综合评估 + */ + private Integer type; + /** + * 描述 + */ + private String description; + /** + * 适用人群 + */ + private String applicableCrowd; + /** + * 评估周期类型:1-月评 2-季评 3-半年评 4-年终评 5-入监评估 6-出监评估 + */ + private Integer evaluationCycle; + /** + * 状态:1-启用 2-禁用 + */ + private Integer status; + /** + * 是否允许AI生成:1-是 2-否 + */ + private Integer aiEnabled; + /** + * AI提示词 + */ + private String aiPrompt; + /** + * 报告封面图 + */ + private String coverImage; + /** + * 排序 + */ + private Integer sort; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/ReportCommentDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/ReportCommentDO.java new file mode 100644 index 0000000000..aaf5851ba0 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/evaluationreport/ReportCommentDO.java @@ -0,0 +1,70 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 快捷评语库 DO + * + * @author xlcp + */ +@TableName("prison_report_comment") +@KeySequence("prison_report_comment_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ReportCommentDO extends BaseDO { + + /** + * 评语ID + */ + @TableId + private Long id; + /** + * 评语内容 + */ + private String content; + /** + * 评语类型:1-心理评语 2-行为表现评语 3-教育改造评语 4-劳动表现评语 5-综合评语 6-风险提示 7-建议措施 + */ + private Integer commentType; + /** + * 适用维度(关联维度表) + */ + private Long dimensionId; + /** + * 维度名称 + */ + private String dimensionName; + /** + * 评级等级:1-优秀 2-良好 3-一般 4-较差 5-危险 + */ + private Integer level; + /** + * 标签(逗号分隔) + */ + private String tags; + /** + * 使用次数 + */ + private Integer useCount; + /** + * 状态:1-启用 2-禁用 + */ + private Integer status; + /** + * 排序 + */ + private Integer sort; + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/questionnairerecord/QuestionnaireRecordDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/questionnairerecord/QuestionnaireRecordDO.java index 8d4d6e30b3..96901c410f 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/questionnairerecord/QuestionnaireRecordDO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/questionnairerecord/QuestionnaireRecordDO.java @@ -71,6 +71,10 @@ public class QuestionnaireRecordDO extends BaseDO { * 结束时间 */ private LocalDateTime endTime; + /** + * 答题时间 + */ + private LocalDateTime answerTime; /** * 截止日期 */ diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/quickcomment/CommentCategoryDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/quickcomment/CommentCategoryDO.java new file mode 100644 index 0000000000..f07d2321a5 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/quickcomment/CommentCategoryDO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 快捷评语分类 DO + * + * @author xlcp + */ +@TableName("prison_comment_category") +@KeySequence("prison_comment_category_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CommentCategoryDO extends BaseDO { + + /** + * 分类ID + */ + @TableId + private Long id; + + /** + * 分类名称 + */ + private String name; + + /** + * 评估类型:1-入监 2-定期 3-出监 4-减刑 5-专项 + */ + private Integer type; + + /** + * 排序 + */ + private Integer sort; + + /** + * 状态:0-停用 1-启用 + */ + private Integer status; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/quickcomment/QuickCommentDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/quickcomment/QuickCommentDO.java new file mode 100644 index 0000000000..363c0687fa --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/quickcomment/QuickCommentDO.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 快捷评语 DO + * + * @author xlcp + */ +@TableName("prison_quick_comment") +@KeySequence("prison_quick_comment_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class QuickCommentDO extends BaseDO { + + /** + * 评语ID + */ + @TableId + private Long id; + + /** + * 分类ID + */ + private Long categoryId; + + /** + * 评语内容 + */ + private String content; + + /** + * 使用次数 + */ + private Integer usageCount; + + /** + * 排序 + */ + private Integer sort; + + /** + * 状态:0-停用 1-启用 + */ + private Integer status; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/report/ReportDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/report/ReportDO.java new file mode 100644 index 0000000000..40780899b7 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/report/ReportDO.java @@ -0,0 +1,166 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.report; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDate; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 评估报告 DO + * + * @author xlcp + */ +@TableName("prison_report") +@KeySequence("prison_report_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ReportDO extends BaseDO { + + /** + * 报告ID + */ + @TableId + private Long id; + + /** + * 报告编号 + */ + private String reportNo; + + /** + * 罪犯ID + */ + private Long prisonerId; + + /** + * 罪犯编号 + */ + private String prisonerNo; + + /** + * 罪犯姓名 + */ + private String prisonerName; + + /** + * 模板ID + */ + private Long templateId; + + /** + * 模板名称 + */ + private String templateName; + + /** + * 报告标题 + */ + private String title; + + /** + * 报告日期 + */ + private LocalDate reportDate; + + /** + * 维度内容,JSON格式 + */ + private String dimensions; + + /** + * 综合结论 + */ + private String conclusion; + + /** + * 改造建议 + */ + private String suggestions; + + /** + * 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险 + */ + private Integer riskLevel; + + /** + * 附件列表,JSON格式 + */ + private String attachments; + + /** + * 状态:1-草稿 2-待审核 3-已通过 4-已退回 + */ + private Integer status; + + /** + * 版本号 + */ + private Integer version; + + /** + * 数字签名 + */ + private String signature; + + /** + * 报告指纹 + */ + private String fingerprint; + + /** + * 提交人ID + */ + private Long submitterId; + + /** + * 提交人姓名 + */ + private String submitterName; + + /** + * 提交时间 + */ + private LocalDateTime submitTime; + + /** + * 审核人ID + */ + private Long reviewerId; + + /** + * 审核人姓名 + */ + private String reviewerName; + + /** + * 审核时间 + */ + private LocalDateTime reviewTime; + + /** + * 审核意见 + */ + private String reviewComment; + + /** + * 是否已归档 + */ + private Boolean archived; + + /** + * 归档时间 + */ + private LocalDateTime archivedTime; + + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/reporttemplate/ReportTemplateDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/reporttemplate/ReportTemplateDO.java new file mode 100644 index 0000000000..2a334a8b1e --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/reporttemplate/ReportTemplateDO.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.reporttemplate; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 评估报告模板 DO + * + * @author xlcp + */ +@TableName("prison_report_template") +@KeySequence("prison_report_template_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ReportTemplateDO extends BaseDO { + + /** + * 模板ID + */ + @TableId + private Long id; + + /** + * 模板名称 + */ + private String name; + + /** + * 模板类型:1-入监综合评估 2-定期考核报告 3-出监评估 4-减刑假释建议 5-专项评估 + */ + private Integer type; + + /** + * 报告标题格式 + */ + private String titleFormat; + + /** + * 评估维度配置,JSON格式 + */ + private String dimensions; + + /** + * AI提示词配置,JSON格式 + */ + private String aiPromptConfig; + + /** + * 样式配置,JSON格式 + */ + private String styleConfig; + + /** + * 状态:0-停用 1-启用 + */ + private Integer status; + + /** + * 是否默认 + */ + private Boolean isDefault; + + /** + * 版本号 + */ + private Integer version; + + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/risk/RiskDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/risk/RiskDO.java new file mode 100644 index 0000000000..d8b0ff248f --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/risk/RiskDO.java @@ -0,0 +1,124 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.risk; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDate; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 风险评估 DO + * + * @author xlcp + */ +@TableName("prison_risk") +@KeySequence("prison_risk_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RiskDO extends BaseDO { + + /** + * 评估ID + */ + @TableId + private Long id; + + /** + * 关联罪犯ID + */ + private Long prisonerId; + + /** + * 罪犯编号 + */ + @TableField("prisoner_no") + private String prisonerCode; + + /** + * 罪犯姓名 + */ + @TableField("prisoner_name") + private String prisonerName; + + /** + * 评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估 + */ + private Integer assessmentType; + + /** + * 评估日期 + */ + private LocalDate assessmentDate; + + /** + * 综合风险得分(0-100) + */ + private BigDecimal overallScore; + + /** + * 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险 + */ + private Integer riskLevel; + + /** + * 精神状态评估 + */ + private String mentalState; + + /** + * 脱逃风险评估 + */ + private String escapeRisk; + + /** + * 暴力倾向评估 + */ + private String violenceRisk; + + /** + * 抗改风险评估 + */ + private String revoltRisk; + + /** + * 自杀自伤风险评估 + */ + private String selfHarmRisk; + + /** + * 评估建议 + */ + private String recommendation; + + /** + * 评估人 + */ + private String assessor; + + /** + * 评估方式:1-心理测评 2-行为观察 3-面谈评估 4-综合评估 + */ + private Integer assessMethod; + + /** + * 评估项目得分(JSON格式存储) + * 结构:[{itemId: 1, itemName: "项目名称", score: 85, weight: 0.2}] + */ + private String itemScores; + + /** + * 评估结论 + */ + private String conclusion; + + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/situation/SituationDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/situation/SituationDO.java new file mode 100644 index 0000000000..cdc563277b --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/situation/SituationDO.java @@ -0,0 +1,101 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.situation; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableField; + +/** + * 狱情收集信息 DO + * + * @author xlcp + */ +@TableName("prison_situation") +@KeySequence("prison_situation_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SituationDO extends BaseDO { + + /** + * 狱情ID + */ + @TableId + private Long id; + + /** + * 标题 + */ + private String title; + + /** + * 详情内容 + */ + private String content; + + /** + * 分类:1-监管安全 2-教育改造 3-生活卫生 4-生产安全 5-狱内案件 6-其他 + */ + private Integer category; + + /** + * 等级:1-一般 2-重要 3-紧急 + */ + private Integer level; + + /** + * 来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-其他 + */ + private Integer source; + + /** + * 处理状态:1-待处理 2-处理中 3-已处理 + */ + private Integer status; + + /** + * 关联监区ID + */ + private Long areaId; + + /** + * 关联监室ID + */ + private Long cellId; + + /** + * 报告人 + */ + private String reporter; + + /** + * 处理人 + */ + private String handler; + + /** + * 处理时间 + */ + private LocalDateTime handleTime; + + /** + * 处理结果 + */ + private String handleResult; + + /** + * 备注 + */ + private String remark; + + /** + * 发生时间 + */ + private LocalDateTime occurTime; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/warning/WarningDO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/warning/WarningDO.java new file mode 100644 index 0000000000..6d79843583 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/dataobject/warning/WarningDO.java @@ -0,0 +1,141 @@ +package cn.iocoder.yudao.module.prison.dal.dataobject.warning; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableField; + +/** + * 预警信息 DO + * + * @author xlcp + */ +@TableName("prison_warning") +@KeySequence("prison_warning_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WarningDO extends BaseDO { + + /** + * 预警ID + */ + @TableId + private Long id; + + /** + * 预警标题 + */ + private String title; + + /** + * 预警内容 + */ + private String content; + + /** + * 预警类型:1-安全预警 2-监管预警 3-改造预警 4-生产预警 5-生活卫生预警 6-其他 + */ + private Integer type; + + /** + * 预警等级:1-一般 2-重要 3-紧急 4-严重 + */ + private Integer level; + + /** + * 预警状态:1-待核实 2-已核实 3-已处置 4-已解除 + */ + private Integer status; + + /** + * 预警来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-智能分析 6-其他 + */ + private Integer source; + + /** + * 关联狱情ID + */ + private Long situationId; + + /** + * 关联监区ID + */ + private Long areaId; + + /** + * 关联监室ID + */ + private Long cellId; + + /** + * 预警时间 + */ + private LocalDateTime alertTime; + + /** + * 核实时间 + */ + private LocalDateTime verifyTime; + + /** + * 核实人 + */ + private String verifier; + + /** + * 核实结果 + */ + private String verifyResult; + + /** + * 处置时间 + */ + private LocalDateTime handleTime; + + /** + * 处置人 + */ + private String handler; + + /** + * 处置方式 + */ + private String handleMethod; + + /** + * 处置结果 + */ + private String handleResult; + + /** + * 解除时间 + */ + private LocalDateTime releaseTime; + + /** + * 解除人 + */ + private String releaser; + + /** + * 解除原因 + */ + private String releaseReason; + + /** + * 发生时间 + */ + private LocalDateTime occurTime; + + /** + * 备注 + */ + private String remark; + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/consumption/ConsumptionMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/consumption/ConsumptionMapper.java index 9636de8d7b..56888c99c1 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/consumption/ConsumptionMapper.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/consumption/ConsumptionMapper.java @@ -7,6 +7,9 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.ResultMap; +import org.apache.ibatis.annotations.Select; import cn.iocoder.yudao.module.prison.controller.admin.consumption.vo.*; /** @@ -32,4 +35,92 @@ public interface ConsumptionMapper extends BaseMapperX { .orderByDesc(ConsumptionDO::getId)); } + /** + * 查询消费订单详情(包含罪犯信息) + */ + @Select(""" + + """) + @ResultMap("ConsumptionDetailResultMap") + ConsumptionRespVO selectConsumptionDetail(@Param("id") Long id); + + /** + * 分页查询消费订单(包含罪犯信息) + */ + @Select(""" + + """) + @ResultMap("ConsumptionDetailResultMap") + List selectConsumptionDetailPage(@Param("reqVO") ConsumptionPageReqVO reqVO); + } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/dashboard/PrisonDashboardMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/dashboard/PrisonDashboardMapper.java index 66d215f911..4f7411d564 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/dashboard/PrisonDashboardMapper.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/dashboard/PrisonDashboardMapper.java @@ -4,6 +4,8 @@ import cn.iocoder.yudao.module.prison.controller.admin.dashboard.vo.ChartDataVO; import cn.iocoder.yudao.module.prison.controller.admin.dashboard.vo.ProvinceChartVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -132,6 +134,10 @@ public interface PrisonDashboardMapper { WHERE p.status = 1 AND p.deleted = 0 AND p.native_place IS NOT NULL GROUP BY LEFT(p.native_place, 2) """) + @Results({ + @Result(column = "province_code", property = "provinceCode", javaType = String.class), + @Result(column = "count", property = "count", javaType = Integer.class) + }) List selectProvinceDistributionRaw(); /** diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationDimensionDataMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationDimensionDataMapper.java new file mode 100644 index 0000000000..ce62100ecf --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationDimensionDataMapper.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.EvaluationDimensionDataDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; + +/** + * 报告维度数据 Mapper + * + * @author xlcp + */ +@Mapper +public interface EvaluationDimensionDataMapper extends BaseMapperX { + + default PageResult selectPage(EvaluationDimensionDataPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(EvaluationDimensionDataDO::getReportId, reqVO.getReportId()) + .eqIfPresent(EvaluationDimensionDataDO::getDimensionId, reqVO.getDimensionId()) + .eqIfPresent(EvaluationDimensionDataDO::getDimensionType, reqVO.getDimensionType()) + .betweenIfPresent(EvaluationDimensionDataDO::getCreateTime, reqVO.getCreateTime()) + .orderByAsc(EvaluationDimensionDataDO::getSort) + .orderByDesc(EvaluationDimensionDataDO::getId)); + } + + default List selectListByReportId(Long reportId) { + return selectList(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(EvaluationDimensionDataDO::getReportId, reportId) + .eq(EvaluationDimensionDataDO::getDeleted, false) + .orderByAsc(EvaluationDimensionDataDO::getSort)); + } + + default void deleteByReportId(Long reportId) { + delete(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(EvaluationDimensionDataDO::getReportId, reportId)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationDimensionMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationDimensionMapper.java new file mode 100644 index 0000000000..65853bac44 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationDimensionMapper.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.EvaluationDimensionDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; + +/** + * 评估维度配置 Mapper + * + * @author xlcp + */ +@Mapper +public interface EvaluationDimensionMapper extends BaseMapperX { + + default PageResult selectPage(EvaluationDimensionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(EvaluationDimensionDO::getTemplateId, reqVO.getTemplateId()) + .likeIfPresent(EvaluationDimensionDO::getName, reqVO.getName()) + .eqIfPresent(EvaluationDimensionDO::getCode, reqVO.getCode()) + .eqIfPresent(EvaluationDimensionDO::getDimensionType, reqVO.getDimensionType()) + .eqIfPresent(EvaluationDimensionDO::getEvaluationMethod, reqVO.getEvaluationMethod()) + .eqIfPresent(EvaluationDimensionDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(EvaluationDimensionDO::getCreateTime, reqVO.getCreateTime()) + .orderByAsc(EvaluationDimensionDO::getSort) + .orderByDesc(EvaluationDimensionDO::getId)); + } + + default List selectListByTemplateId(Long templateId) { + return selectList(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(EvaluationDimensionDO::getTemplateId, templateId) + .eq(EvaluationDimensionDO::getDeleted, false) + .orderByAsc(EvaluationDimensionDO::getSort)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationReportMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationReportMapper.java new file mode 100644 index 0000000000..90ab0a4254 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationReportMapper.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.EvaluationReportDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; + +/** + * 评估报告 Mapper + * + * @author xlcp + */ +@Mapper +public interface EvaluationReportMapper extends BaseMapperX { + + default PageResult selectPage(EvaluationReportPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(EvaluationReportDO::getPrisonerId, reqVO.getPrisonerId()) + .likeIfPresent(EvaluationReportDO::getPrisonerNo, reqVO.getPrisonerNo()) + .likeIfPresent(EvaluationReportDO::getPrisonerName, reqVO.getPrisonerName()) + .eqIfPresent(EvaluationReportDO::getTemplateId, reqVO.getTemplateId()) + .eqIfPresent(EvaluationReportDO::getEvaluationType, reqVO.getEvaluationType()) + .eqIfPresent(EvaluationReportDO::getEvaluationCycle, reqVO.getEvaluationCycle()) + .eqIfPresent(EvaluationReportDO::getLevel, reqVO.getLevel()) + .eqIfPresent(EvaluationReportDO::getRiskLevel, reqVO.getRiskLevel()) + .eqIfPresent(EvaluationReportDO::getStatus, reqVO.getStatus()) + .eqIfPresent(EvaluationReportDO::getAreaId, reqVO.getAreaId()) + .betweenIfPresent(EvaluationReportDO::getEvaluationDate, reqVO.getEvaluationDate()) + .betweenIfPresent(EvaluationReportDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(EvaluationReportDO::getId)); + } + + default EvaluationReportDO selectByReportNo(String reportNo) { + return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(EvaluationReportDO::getReportNo, reportNo) + .eq(EvaluationReportDO::getDeleted, false)); + } + + default List selectListByPrisonerId(Long prisonerId) { + return selectList(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(EvaluationReportDO::getPrisonerId, prisonerId) + .eq(EvaluationReportDO::getDeleted, false) + .orderByDesc(EvaluationReportDO::getEvaluationDate)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationTemplateMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationTemplateMapper.java new file mode 100644 index 0000000000..4ace037858 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/EvaluationTemplateMapper.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.EvaluationTemplateDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; + +/** + * 评估报告模板 Mapper + * + * @author xlcp + */ +@Mapper +public interface EvaluationTemplateMapper extends BaseMapperX { + + default PageResult selectPage(EvaluationTemplatePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(EvaluationTemplateDO::getName, reqVO.getName()) + .eqIfPresent(EvaluationTemplateDO::getCode, reqVO.getCode()) + .eqIfPresent(EvaluationTemplateDO::getType, reqVO.getType()) + .eqIfPresent(EvaluationTemplateDO::getEvaluationCycle, reqVO.getEvaluationCycle()) + .eqIfPresent(EvaluationTemplateDO::getStatus, reqVO.getStatus()) + .eqIfPresent(EvaluationTemplateDO::getAiEnabled, reqVO.getAiEnabled()) + .betweenIfPresent(EvaluationTemplateDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(EvaluationTemplateDO::getId)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/ReportCommentMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/ReportCommentMapper.java new file mode 100644 index 0000000000..00990c48f4 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/evaluationreport/ReportCommentMapper.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.ReportCommentDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; + +/** + * 快捷评语库 Mapper + * + * @author xlcp + */ +@Mapper +public interface ReportCommentMapper extends BaseMapperX { + + default PageResult selectPage(ReportCommentPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(ReportCommentDO::getContent, reqVO.getContent()) + .eqIfPresent(ReportCommentDO::getCommentType, reqVO.getCommentType()) + .eqIfPresent(ReportCommentDO::getDimensionId, reqVO.getDimensionId()) + .eqIfPresent(ReportCommentDO::getLevel, reqVO.getLevel()) + .eqIfPresent(ReportCommentDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(ReportCommentDO::getCreateTime, reqVO.getCreateTime()) + .orderByAsc(ReportCommentDO::getSort) + .orderByDesc(ReportCommentDO::getId)); + } + + default List selectListByTypeAndLevel(Integer commentType, Integer level) { + return selectList(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(ReportCommentDO::getCommentType, commentType) + .eq(level != null, ReportCommentDO::getLevel, level) + .eq(ReportCommentDO::getStatus, 1) + .eq(ReportCommentDO::getDeleted, false) + .orderByDesc(ReportCommentDO::getUseCount)); + } + + default List selectListByDimensionId(Long dimensionId) { + return selectList(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(ReportCommentDO::getDimensionId, dimensionId) + .eq(ReportCommentDO::getStatus, 1) + .eq(ReportCommentDO::getDeleted, false) + .orderByDesc(ReportCommentDO::getUseCount)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/quickcomment/CommentCategoryMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/quickcomment/CommentCategoryMapper.java new file mode 100644 index 0000000000..ac3750abc4 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/quickcomment/CommentCategoryMapper.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.quickcomment; + +import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.CommentCategoryDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.CommentCategoryPageReqVO; + +/** + * 快捷评语分类 Mapper + * + * @author xlcp + */ +@Mapper +public interface CommentCategoryMapper extends BaseMapperX { + + default PageResult selectPage(CommentCategoryPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(CommentCategoryDO::getName, reqVO.getName()) + .eqIfPresent(CommentCategoryDO::getType, reqVO.getType()) + .eqIfPresent(CommentCategoryDO::getStatus, reqVO.getStatus()) + .orderByAsc(CommentCategoryDO::getSort)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/quickcomment/QuickCommentMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/quickcomment/QuickCommentMapper.java new file mode 100644 index 0000000000..cc8f775e57 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/quickcomment/QuickCommentMapper.java @@ -0,0 +1,109 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.quickcomment; + +import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.QuickCommentDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.Results; +import org.apache.ibatis.annotations.Select; +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.QuickCommentPageReqVO; +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.QuickCommentRespVO; + +/** + * 快捷评语 Mapper + * + * @author xlcp + */ +@Mapper +public interface QuickCommentMapper extends BaseMapperX { + + default PageResult selectPage(QuickCommentPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(QuickCommentDO::getCategoryId, reqVO.getCategoryId()) + .likeIfPresent(QuickCommentDO::getContent, reqVO.getContent()) + .eqIfPresent(QuickCommentDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(QuickCommentDO::getCreateTime, reqVO.getCreateTime()) + .orderByAsc(QuickCommentDO::getSort)); + } + + /** + * 查询评语详情(包含分类名称) + */ + @Select(""" + + """) + @Results({ + @Result(id = true, column = "id", property = "id"), + @Result(column = "category_id", property = "categoryId"), + @Result(column = "category_name", property = "categoryName"), + @Result(column = "content", property = "content"), + @Result(column = "usage_count", property = "usageCount"), + @Result(column = "sort", property = "sort"), + @Result(column = "status", property = "status"), + @Result(column = "create_time", property = "createTime"), + @Result(column = "update_time", property = "updateTime") + }) + QuickCommentRespVO selectQuickCommentDetail(@Param("id") Long id); + + /** + * 分页查询评语(包含分类名称) + */ + @Select(""" + + """) + @Results({ + @Result(id = true, column = "id", property = "id"), + @Result(column = "category_id", property = "categoryId"), + @Result(column = "category_name", property = "categoryName"), + @Result(column = "content", property = "content"), + @Result(column = "usage_count", property = "usageCount"), + @Result(column = "sort", property = "sort"), + @Result(column = "status", property = "status"), + @Result(column = "create_time", property = "createTime"), + @Result(column = "update_time", property = "updateTime") + }) + List selectQuickCommentDetailPage(@Param("reqVO") QuickCommentPageReqVO reqVO); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/report/ReportMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/report/ReportMapper.java new file mode 100644 index 0000000000..e39e917d8c --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/report/ReportMapper.java @@ -0,0 +1,229 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.report; + +import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.report.ReportDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Result; +import org.apache.ibatis.annotations.Results; +import org.apache.ibatis.annotations.Select; +import cn.iocoder.yudao.module.prison.controller.admin.report.vo.ReportPageReqVO; +import cn.iocoder.yudao.module.prison.controller.admin.report.vo.ReportRespVO; + +/** + * 评估报告 Mapper + * + * @author xlcp + */ +@Mapper +public interface ReportMapper extends BaseMapperX { + + default PageResult selectPage(ReportPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ReportDO::getReportNo, reqVO.getReportNo()) + .eqIfPresent(ReportDO::getPrisonerId, reqVO.getPrisonerId()) + .eqIfPresent(ReportDO::getPrisonerNo, reqVO.getPrisonerNo()) + .eqIfPresent(ReportDO::getTemplateId, reqVO.getTemplateId()) + .eqIfPresent(ReportDO::getRiskLevel, reqVO.getRiskLevel()) + .eqIfPresent(ReportDO::getStatus, reqVO.getStatus()) + .eqIfPresent(ReportDO::getReportDate, reqVO.getReportDate()) + .betweenIfPresent(ReportDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ReportDO::getId)); + } + + /** + * 查询报告详情(包含罪犯信息) + */ + @Select(""" + + """) + @Results({ + @Result(id = true, column = "id", property = "id"), + @Result(column = "report_no", property = "reportNo"), + @Result(column = "prisoner_id", property = "prisonerId"), + @Result(column = "prisoner_no", property = "prisonerNo"), + @Result(column = "prisoner_name", property = "prisonerName"), + @Result(column = "prison_area_id", property = "prisonAreaId"), + @Result(column = "prison_area_name", property = "prisonAreaName"), + @Result(column = "prison_cell_id", property = "prisonCellId"), + @Result(column = "prison_cell_name", property = "prisonCellName"), + @Result(column = "template_id", property = "templateId"), + @Result(column = "template_name", property = "templateName"), + @Result(column = "title", property = "title"), + @Result(column = "report_date", property = "reportDate"), + @Result(column = "dimensions", property = "dimensions"), + @Result(column = "conclusion", property = "conclusion"), + @Result(column = "suggestions", property = "suggestions"), + @Result(column = "risk_level", property = "riskLevel"), + @Result(column = "attachments", property = "attachments"), + @Result(column = "status", property = "status"), + @Result(column = "version", property = "version"), + @Result(column = "signature", property = "signature"), + @Result(column = "fingerprint", property = "fingerprint"), + @Result(column = "submitter_id", property = "submitterId"), + @Result(column = "submitter_name", property = "submitterName"), + @Result(column = "submit_time", property = "submitTime"), + @Result(column = "reviewer_id", property = "reviewerId"), + @Result(column = "reviewer_name", property = "reviewerName"), + @Result(column = "review_time", property = "reviewTime"), + @Result(column = "review_comment", property = "reviewComment"), + @Result(column = "archived", property = "archived"), + @Result(column = "archived_time", property = "archivedTime"), + @Result(column = "remark", property = "remark"), + @Result(column = "create_time", property = "createTime"), + @Result(column = "update_time", property = "updateTime") + }) + ReportRespVO selectReportDetail(@Param("id") Long id); + + /** + * 分页查询报告(包含罪犯信息) + */ + @Select(""" + + """) + @Results({ + @Result(id = true, column = "id", property = "id"), + @Result(column = "report_no", property = "reportNo"), + @Result(column = "prisoner_id", property = "prisonerId"), + @Result(column = "prisoner_no", property = "prisonerNo"), + @Result(column = "prisoner_name", property = "prisonerName"), + @Result(column = "prison_area_id", property = "prisonAreaId"), + @Result(column = "prison_area_name", property = "prisonAreaName"), + @Result(column = "prison_cell_id", property = "prisonCellId"), + @Result(column = "prison_cell_name", property = "prisonCellName"), + @Result(column = "template_id", property = "templateId"), + @Result(column = "template_name", property = "templateName"), + @Result(column = "title", property = "title"), + @Result(column = "report_date", property = "reportDate"), + @Result(column = "dimensions", property = "dimensions"), + @Result(column = "conclusion", property = "conclusion"), + @Result(column = "suggestions", property = "suggestions"), + @Result(column = "risk_level", property = "riskLevel"), + @Result(column = "attachments", property = "attachments"), + @Result(column = "status", property = "status"), + @Result(column = "version", property = "version"), + @Result(column = "signature", property = "signature"), + @Result(column = "fingerprint", property = "fingerprint"), + @Result(column = "submitter_id", property = "submitterId"), + @Result(column = "submitter_name", property = "submitterName"), + @Result(column = "submit_time", property = "submitTime"), + @Result(column = "reviewer_id", property = "reviewerId"), + @Result(column = "reviewer_name", property = "reviewerName"), + @Result(column = "review_time", property = "reviewTime"), + @Result(column = "review_comment", property = "reviewComment"), + @Result(column = "archived", property = "archived"), + @Result(column = "archived_time", property = "archivedTime"), + @Result(column = "remark", property = "remark"), + @Result(column = "create_time", property = "createTime"), + @Result(column = "update_time", property = "updateTime") + }) + List selectReportDetailPage(@Param("reqVO") ReportPageReqVO reqVO); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/reporttemplate/ReportTemplateMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/reporttemplate/ReportTemplateMapper.java new file mode 100644 index 0000000000..ee020255c3 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/reporttemplate/ReportTemplateMapper.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.reporttemplate; + +import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.reporttemplate.ReportTemplateDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo.ReportTemplatePageReqVO; + +/** + * 评估报告模板 Mapper + * + * @author xlcp + */ +@Mapper +public interface ReportTemplateMapper extends BaseMapperX { + + default PageResult selectPage(ReportTemplatePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(ReportTemplateDO::getName, reqVO.getName()) + .eqIfPresent(ReportTemplateDO::getType, reqVO.getType()) + .eqIfPresent(ReportTemplateDO::getStatus, reqVO.getStatus()) + .eqIfPresent(ReportTemplateDO::getIsDefault, reqVO.getIsDefault()) + .betweenIfPresent(ReportTemplateDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ReportTemplateDO::getId)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/risk/RiskMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/risk/RiskMapper.java new file mode 100644 index 0000000000..5356c8ad8d --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/risk/RiskMapper.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.risk; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.risk.RiskDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.risk.vo.*; + +/** + * 风险评估 Mapper + * + * @author xlcp + */ +@Mapper +public interface RiskMapper extends BaseMapperX { + + default PageResult selectPage(RiskPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RiskDO::getPrisonerId, reqVO.getPrisonerId()) + .eqIfPresent(RiskDO::getPrisonerCode, reqVO.getPrisonerCode()) + .eqIfPresent(RiskDO::getPrisonerName, reqVO.getPrisonerName()) + .eqIfPresent(RiskDO::getAssessmentType, reqVO.getAssessmentType()) + .eqIfPresent(RiskDO::getRiskLevel, reqVO.getRiskLevel()) + .eqIfPresent(RiskDO::getAssessor, reqVO.getAssessor()) + .eqIfPresent(RiskDO::getMentalState, reqVO.getMentalState()) + .eqIfPresent(RiskDO::getEscapeRisk, reqVO.getEscapeRisk()) + .eqIfPresent(RiskDO::getViolenceRisk, reqVO.getViolenceRisk()) + .eqIfPresent(RiskDO::getRevoltRisk, reqVO.getRevoltRisk()) + .eqIfPresent(RiskDO::getSelfHarmRisk, reqVO.getSelfHarmRisk()) + .betweenIfPresent(RiskDO::getAssessmentDate, reqVO.getAssessmentDate()) + .betweenIfPresent(RiskDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RiskDO::getId)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/riskassessment/RiskAssessmentMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/riskassessment/RiskAssessmentMapper.java index 61c50d25e5..905f91e947 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/riskassessment/RiskAssessmentMapper.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/riskassessment/RiskAssessmentMapper.java @@ -7,6 +7,9 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.prison.dal.dataobject.riskassessment.RiskAssessmentDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.ResultMap; +import org.apache.ibatis.annotations.Select; import cn.iocoder.yudao.module.prison.controller.admin.riskassessment.vo.*; /** @@ -39,4 +42,91 @@ public interface RiskAssessmentMapper extends BaseMapperX { .orderByDesc(RiskAssessmentDO::getId)); } + /** + * 查询危险评估详情(包含罪犯信息) + */ + @Select(""" + + """) + @ResultMap("AssessmentDetailResultMap") + RiskAssessmentRespVO selectAssessmentDetail(@Param("id") Long id); + + /** + * 分页查询危险评估(包含罪犯信息) + */ + @Select(""" + + """) + @ResultMap("AssessmentDetailResultMap") + List selectAssessmentDetailPage(@Param("reqVO") RiskAssessmentPageReqVO reqVO); + } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/score/ScoreMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/score/ScoreMapper.java index 1c4434dd62..9a6964445d 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/score/ScoreMapper.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/score/ScoreMapper.java @@ -7,6 +7,9 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.prison.dal.dataobject.score.ScoreDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.ResultMap; +import org.apache.ibatis.annotations.Select; import cn.iocoder.yudao.module.prison.controller.admin.score.vo.*; /** @@ -36,4 +39,106 @@ public interface ScoreMapper extends BaseMapperX { .orderByDesc(ScoreDO::getId)); } + /** + * 查询计分考核详情(包含罪犯信息) + */ + @Select(""" + + """) + @ResultMap("ScoreDetailResultMap") + ScoreRespVO selectScoreDetail(@Param("id") Long id); + + /** + * 分页查询计分考核(包含罪犯信息) + */ + @Select(""" + + """) + @ResultMap("ScoreDetailResultMap") + List selectScoreDetailPage(@Param("reqVO") ScorePageReqVO reqVO); + } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/situation/SituationMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/situation/SituationMapper.java new file mode 100644 index 0000000000..0ba43349f7 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/situation/SituationMapper.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.situation; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.situation.SituationDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.situation.vo.*; + +/** + * 狱情收集信息 Mapper + * + * @author xlcp + */ +@Mapper +public interface SituationMapper extends BaseMapperX { + + default PageResult selectPage(SituationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(SituationDO::getTitle, reqVO.getTitle()) + .eqIfPresent(SituationDO::getCategory, reqVO.getCategory()) + .eqIfPresent(SituationDO::getLevel, reqVO.getLevel()) + .eqIfPresent(SituationDO::getSource, reqVO.getSource()) + .eqIfPresent(SituationDO::getStatus, reqVO.getStatus()) + .eqIfPresent(SituationDO::getAreaId, reqVO.getAreaId()) + .eqIfPresent(SituationDO::getCellId, reqVO.getCellId()) + .eqIfPresent(SituationDO::getReporter, reqVO.getReporter()) + .eqIfPresent(SituationDO::getHandler, reqVO.getHandler()) + .betweenIfPresent(SituationDO::getOccurTime, reqVO.getOccurTime()) + .betweenIfPresent(SituationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SituationDO::getId)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/warning/WarningMapper.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/warning/WarningMapper.java new file mode 100644 index 0000000000..18832c90be --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/dal/mysql/warning/WarningMapper.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.prison.dal.mysql.warning; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.prison.dal.dataobject.warning.WarningDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.prison.controller.admin.warning.vo.*; + +/** + * 预警信息 Mapper + * + * @author xlcp + */ +@Mapper +public interface WarningMapper extends BaseMapperX { + + default PageResult selectPage(WarningPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(WarningDO::getTitle, reqVO.getTitle()) + .eqIfPresent(WarningDO::getType, reqVO.getType()) + .eqIfPresent(WarningDO::getLevel, reqVO.getLevel()) + .eqIfPresent(WarningDO::getStatus, reqVO.getStatus()) + .eqIfPresent(WarningDO::getSource, reqVO.getSource()) + .eqIfPresent(WarningDO::getSituationId, reqVO.getSituationId()) + .eqIfPresent(WarningDO::getAreaId, reqVO.getAreaId()) + .eqIfPresent(WarningDO::getCellId, reqVO.getCellId()) + .eqIfPresent(WarningDO::getVerifier, reqVO.getVerifier()) + .eqIfPresent(WarningDO::getHandler, reqVO.getHandler()) + .eqIfPresent(WarningDO::getReleaser, reqVO.getReleaser()) + .betweenIfPresent(WarningDO::getAlertTime, reqVO.getAlertTime()) + .betweenIfPresent(WarningDO::getOccurTime, reqVO.getOccurTime()) + .betweenIfPresent(WarningDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(WarningDO::getId)); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AreaTypeEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AreaTypeEnum.java index 09d20c1996..fe02e9fd20 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AreaTypeEnum.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AreaTypeEnum.java @@ -18,10 +18,14 @@ public enum AreaTypeEnum { NORMAL(1, "普通监区"), STRICT(2, "严管监区"), - TRAINING(3, "集训监区"), - RELEASE(4, "出监监区"), - HOSPITAL(5, "医院"), - SOLITARY(6, "禁闭室"); + HOSPITAL(3, "医院"), + SOLITARY(4, "禁闭室"), + ELDERLY(5, "老残监区"), + FEMALE(6, "女犯监区"), + MINOR(7, "未成年犯监区"), + ENTRY_EXIT(8, "出入监区"), + LABOR(9, "劳动监区"), + EDUCATION(10, "教育监区"); @EnumValue @JsonValue diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AssessMethodEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AssessMethodEnum.java new file mode 100644 index 0000000000..f5c84ae614 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AssessMethodEnum.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 评估方式枚举 + * 1-心理测评 2-行为观察 3-面谈评估 4-综合评估 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum AssessMethodEnum { + + PSYCHOLOGICAL(1, "心理测评"), + BEHAVIOR_OBSERVATION(2, "行为观察"), + INTERVIEW(3, "面谈评估"), + COMPREHENSIVE(4, "综合评估"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static AssessMethodEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AssessmentTypeEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AssessmentTypeEnum.java new file mode 100644 index 0000000000..23eb277ccb --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/AssessmentTypeEnum.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 风险评估类型枚举 + * 1-入监评估 2-定期评估 3-专项评估 4-出监评估 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum AssessmentTypeEnum { + + ADMISSION(1, "入监评估"), + REGULAR(2, "定期评估"), + SPECIAL(3, "专项评估"), + RELEASE(4, "出监评估"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static AssessmentTypeEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/DictTypeConstants.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/DictTypeConstants.java index ec4f9db6b6..b4204c02e8 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/DictTypeConstants.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/DictTypeConstants.java @@ -25,5 +25,25 @@ public interface DictTypeConstants { // 考核相关 String PRISON_SCORE_CATEGORY = "prison_score_category"; // 考核类别 + String PRISON_SCORE_STATUS = "prison_score_status"; // 考核状态:1-待审核 2-已通过 + + // 评估相关 + String PRISON_ASSESSMENT_TYPE = "prison_assessment_type"; // 评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估 + + // 问卷相关 + String PRISON_QUESTION_TYPE = "prison_question_type"; // 问卷问题类型:1-单选 2-多选 3-填空 4-评分 5-日期 6-数字 + String PRISON_QUESTIONNAIRE_STATUS = "prison_questionnaire_status"; // 问卷状态:1-草稿 2-已发布 3-已禁用 + String PRISON_QUESTIONNAIRE_TYPE = "prison_questionnaire_type"; // 问卷类型:1-心理测评 2-行为评估 3-满意度调查 + + // 消费相关 + String PRISON_CONSUMPTION_TYPE = "prison_consumption_type"; // 消费类型:1-购物 2-餐饮 3-医疗 4-通讯 5-其他 + String PRISON_CONSUMPTION_STATUS = "prison_consumption_status"; // 消费状态:1-成功 2-失败 + + // 考核相关 + String PRISON_SCORE_LEVEL = "prison_score_level"; // 考核等级:1-优秀 2-良好 3-合格 4-不合格 + + // 问卷记录相关 + String PRISON_RECORD_STATUS = "prison_record_status"; // 问卷答题记录状态:1-待测评 2-测评中 3-已完成 4-已过期 5-已取消 + String PRISON_RECORD_PASS_STATUS = "prison_record_pass_status"; // 问卷答题及格状态:1-及格 2-不及格 3-待评阅 } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EducationEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EducationEnum.java index 2a140d2d98..502fd4f54f 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EducationEnum.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EducationEnum.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonValue; import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.Arrays; + /** * 文化程度枚举 * @@ -14,6 +16,7 @@ import lombok.Getter; @AllArgsConstructor public enum EducationEnum { + UNKNOWN(0, "未知"), ILLITERATE(1, "文盲"), PRIMARY_SCHOOL(2, "小学"), MIDDLE_SCHOOL(3, "初中"), @@ -27,4 +30,11 @@ public enum EducationEnum { private final Integer value; private final String name; + public static EducationEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ErrorCodeConstants.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ErrorCodeConstants.java index a372f078a3..673eea3421 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ErrorCodeConstants.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ErrorCodeConstants.java @@ -13,6 +13,8 @@ public class ErrorCodeConstants { public static final ErrorCode PRISONER_NOT_EXISTS = new ErrorCode(1_000_001, "服刑人员信息不存在"); public static final ErrorCode PRISONER_NO_EXISTS = new ErrorCode(1_000_002, "服刑人员编号【{0}】已存在"); public static final ErrorCode PRISONER_DATE_INVALID = new ErrorCode(1_000_003, "释放日期必须晚于入狱日期"); + public static final ErrorCode PRISON_TRANSFER_SAME_CELL = new ErrorCode(1_000_004, "目标监室与当前监室相同,无需调监"); + public static final ErrorCode PRISON_TRANSFER_STRICT_FORBIDDEN = new ErrorCode(1_000_005, "严管级罪犯不能调入普通监区"); // ========== 监区管理 2xxxx ========== public static final ErrorCode PRISON_AREA_NOT_EXISTS = new ErrorCode(2_000_001, "监区信息不存在"); @@ -21,6 +23,8 @@ public class ErrorCodeConstants { // ========== 监室管理 3xxxx ========== public static final ErrorCode PRISON_CELL_NOT_EXISTS = new ErrorCode(3_000_001, "监室信息不存在"); public static final ErrorCode PRISON_CELL_CODE_EXISTS = new ErrorCode(3_000_002, "监室编码【{0}】已存在"); + public static final ErrorCode PRISON_CELL_STATUS_DISABLED = new ErrorCode(3_000_003, "目标监室已禁用"); + public static final ErrorCode PRISON_CELL_CAPACITY_FULL = new ErrorCode(3_000_004, "目标监室床位已满"); // ========== 计分考核 4xxxx ========== public static final ErrorCode PRISON_SCORE_NOT_EXISTS = new ErrorCode(4_000_001, "计分记录不存在"); @@ -50,6 +54,12 @@ public class ErrorCodeConstants { public static final ErrorCode ASSESSMENT_ANSWER_ALREADY_EXISTS = new ErrorCode(9_000_005, "该囚犯已参与此测评"); public static final ErrorCode ASSESSMENT_RESULT_NOT_EXISTS = new ErrorCode(9_000_006, "测评结果不存在"); + // ========== 狱情收集 11xxxx ========== + public static final ErrorCode PRISON_SITUATION_NOT_EXISTS = new ErrorCode(11_000_001, "狱情记录不存在"); + + // ========== 预警管理 12xxxx ========== + public static final ErrorCode PRISON_WARNING_NOT_EXISTS = new ErrorCode(12_000_001, "预警记录不存在"); + // ========== 别名 (兼容codegen生成的代码) ========== public static final ErrorCode AREA_NOT_EXISTS = PRISON_AREA_NOT_EXISTS; public static final ErrorCode CELL_NOT_EXISTS = PRISON_CELL_NOT_EXISTS; @@ -64,4 +74,14 @@ public class ErrorCodeConstants { // ========== 答卷管理 10xxxx ========== public static final ErrorCode ANSWER_NOT_EXISTS = new ErrorCode(10_000_001, "答卷记录不存在"); + // ========== 评估报告 13xxxx ========== + public static final ErrorCode EVALUATION_TEMPLATE_NOT_EXISTS = new ErrorCode(13_000_001, "评估模板不存在"); + public static final ErrorCode EVALUATION_DIMENSION_NOT_EXISTS = new ErrorCode(13_000_002, "评估维度不存在"); + public static final ErrorCode EVALUATION_REPORT_NOT_EXISTS = new ErrorCode(13_000_003, "评估报告不存在"); + public static final ErrorCode EVALUATION_REPORT_STATUS_ERROR = new ErrorCode(13_000_004, "评估报告状态不正确"); + public static final ErrorCode EVALUATION_DIMENSION_DATA_NOT_EXISTS = new ErrorCode(13_000_005, "维度数据不存在"); + public static final ErrorCode REPORT_COMMENT_NOT_EXISTS = new ErrorCode(13_000_006, "快捷评语不存在"); + public static final ErrorCode PRISON_REPORT_TEMPLATE_NOT_EXISTS = new ErrorCode(13_000_007, "评估报告模板不存在"); + public static final ErrorCode PRISON_REPORT_NOT_EXISTS = new ErrorCode(13_000_008, "评估报告不存在"); + } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationAiStatusEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationAiStatusEnum.java new file mode 100644 index 0000000000..f96a30a532 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationAiStatusEnum.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * AI生成状态枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum EvaluationAiStatusEnum { + + PENDING(1, "待生成"), + GENERATING(2, "生成中"), + COMPLETED(3, "已完成"), + FAILED(4, "生成失败"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static EvaluationAiStatusEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationCycleEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationCycleEnum.java new file mode 100644 index 0000000000..d3e352fc58 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationCycleEnum.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 评估周期类型枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum EvaluationCycleEnum { + + MONTHLY(1, "月评"), + QUARTERLY(2, "季评"), + SEMI_ANNUAL(3, "半年评"), + ANNUAL(4, "年终评"), + ENTRY(5, "入监评估"), + EXIT(6, "出监评估"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static EvaluationCycleEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationDimensionTypeEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationDimensionTypeEnum.java new file mode 100644 index 0000000000..1148021fa6 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationDimensionTypeEnum.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 评估维度类型枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum EvaluationDimensionTypeEnum { + + PSYCHOLOGICAL(1, "心理测评"), + BEHAVIOR(2, "行为表现"), + EDUCATION(3, "教育改造"), + LABOR(4, "劳动表现"), + SOCIAL(5, "人际交往"), + SELF_EVALUATION(6, "自评/他评"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static EvaluationDimensionTypeEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationLevelEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationLevelEnum.java new file mode 100644 index 0000000000..20b44ac170 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationLevelEnum.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 评估等级枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum EvaluationLevelEnum { + + EXCELLENT(1, "优秀"), + GOOD(2, "良好"), + NORMAL(3, "一般"), + POOR(4, "较差"), + DANGEROUS(5, "危险"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static EvaluationLevelEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationReportStatusEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationReportStatusEnum.java new file mode 100644 index 0000000000..a922f2a773 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationReportStatusEnum.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 报告状态枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum EvaluationReportStatusEnum { + + DRAFT(1, "草稿"), + PENDING_AUDIT(2, "待审核"), + AUDITED(3, "已审核"), + VOID(4, "已作废"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static EvaluationReportStatusEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationTemplateTypeEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationTemplateTypeEnum.java new file mode 100644 index 0000000000..c9ec603ad4 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/EvaluationTemplateTypeEnum.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 评估模板类型枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum EvaluationTemplateTypeEnum { + + PSYCHOLOGICAL(1, "心理评估"), + DANGER(2, "危险性评估"), + REFORM(3, "改造表现评估"), + COMPREHENSIVE(4, "综合评估"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static EvaluationTemplateTypeEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/GenderEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/GenderEnum.java index 64691d670f..015e387b97 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/GenderEnum.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/GenderEnum.java @@ -16,6 +16,7 @@ import java.util.Arrays; @AllArgsConstructor public enum GenderEnum { + UNKNOWN(0, "未知"), MALE(1, "男"), FEMALE(2, "女"); diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/PrisonerStatusEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/PrisonerStatusEnum.java index 9e8dd12b67..80a3b4e13e 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/PrisonerStatusEnum.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/PrisonerStatusEnum.java @@ -16,6 +16,7 @@ import java.util.Arrays; @AllArgsConstructor public enum PrisonerStatusEnum { + UNKNOWN(0, "未知"), IMPRISONED(1, "在押"), PAROLED(2, "假释"), OUTSIDE_EXECUTION(3, "暂予监外执行"), diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ReleaseTypeEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ReleaseTypeEnum.java index c73416f02f..3ecbfba93e 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ReleaseTypeEnum.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ReleaseTypeEnum.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonValue; import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.Arrays; + /** * 释放类型枚举 * @@ -14,6 +16,7 @@ import lombok.Getter; @AllArgsConstructor public enum ReleaseTypeEnum { + UNKNOWN(0, "未知"), COMPLETED(1, "刑满释放"), PAROLED(2, "假释"), MEDICAL_RELEASE(3, "保外就医"), @@ -28,4 +31,11 @@ public enum ReleaseTypeEnum { private final Integer value; private final String name; + public static ReleaseTypeEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ReportCommentTypeEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ReportCommentTypeEnum.java new file mode 100644 index 0000000000..62cdeb35f3 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ReportCommentTypeEnum.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 评语类型枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum ReportCommentTypeEnum { + + PSYCHOLOGICAL(1, "心理评语"), + BEHAVIOR(2, "行为表现评语"), + EDUCATION(3, "教育改造评语"), + LABOR(4, "劳动表现评语"), + COMPREHENSIVE(5, "综合评语"), + RISK_WARNING(6, "风险提示"), + SUGGESTION(7, "建议措施"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static ReportCommentTypeEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/RiskLevelEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/RiskLevelEnum.java index 6df613ecfd..db99af9594 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/RiskLevelEnum.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/RiskLevelEnum.java @@ -9,6 +9,7 @@ import java.util.Arrays; /** * 风险等级枚举 + * 1-低风险 2-中风险 3-高风险 4-极高风险 * * @author xlcp */ @@ -16,9 +17,11 @@ import java.util.Arrays; @AllArgsConstructor public enum RiskLevelEnum { - HIGH(1, "高风险"), + UNKNOWN(0, "未知"), + LOW(1, "低风险"), MEDIUM(2, "中风险"), - LOW(3, "低风险"); + HIGH(3, "高风险"), + EXTREME(4, "极高风险"); @EnumValue @JsonValue diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreLevelEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreLevelEnum.java new file mode 100644 index 0000000000..0bee59d9fb --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreLevelEnum.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.prison.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 计分考核等级枚举 + * 1-优秀 2-良好 3-合格 4-不合格 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum ScoreLevelEnum { + + EXCELLENT(1, "优秀"), + GOOD(2, "良好"), + QUALIFIED(3, "合格"), + UNQUALIFIED(4, "不合格"); + + @EnumValue + @JsonValue + private final Integer value; + private final String name; + + public static ScoreLevelEnum fromValue(Integer value) { + return Arrays.stream(values()) + .filter(e -> e.getValue().equals(value)) + .findFirst() + .orElse(null); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreRuleCategoryEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreRuleCategoryEnum.java new file mode 100644 index 0000000000..27c57fdb59 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreRuleCategoryEnum.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.prison.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 考核规则类别枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum ScoreRuleCategoryEnum { + + LABOR(1, "劳动改造"), + EDUCATION(2, "教育改造"), + DAILY_BEHAVIOR(3, "日常行为"), + HYGIENE_DISCIPLINE(4, "卫生纪律"), + BONUS(5, "加分项"), + DEDUCTION(6, "扣分项"); + + /** + * 类别 + */ + private final Integer category; + + /** + * 名称 + */ + private final String name; + + public static String getName(Integer category) { + if (category == null) { + return null; + } + for (ScoreRuleCategoryEnum value : values()) { + if (value.getCategory().equals(category)) { + return value.getName(); + } + } + return null; + } + + public static boolean isValid(Integer category) { + if (category == null) { + return false; + } + for (ScoreRuleCategoryEnum value : values()) { + if (value.getCategory().equals(category)) { + return true; + } + } + return false; + } +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreRuleStatusEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreRuleStatusEnum.java new file mode 100644 index 0000000000..e884921634 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/ScoreRuleStatusEnum.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.prison.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 考核规则状态枚举 + * + * @author xlcp + */ +@Getter +@AllArgsConstructor +public enum ScoreRuleStatusEnum { + + ENABLED(1, "启用"), + DISABLED(2, "禁用"); + + /** + * 状态 + */ + private final Integer status; + + /** + * 名称 + */ + private final String name; + + public static String getName(Integer status) { + if (status == null) { + return null; + } + for (ScoreRuleStatusEnum value : values()) { + if (value.getStatus().equals(status)) { + return value.getName(); + } + } + return null; + } + + public static boolean isValid(Integer status) { + if (status == null) { + return false; + } + for (ScoreRuleStatusEnum value : values()) { + if (value.getStatus().equals(status)) { + return true; + } + } + return false; + } +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/SupervisionLevelEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/SupervisionLevelEnum.java index 1944034b9b..34b35188e5 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/SupervisionLevelEnum.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/SupervisionLevelEnum.java @@ -16,6 +16,7 @@ import java.util.Arrays; @AllArgsConstructor public enum SupervisionLevelEnum { + UNKNOWN(0, "未知"), STRICT(1, "严管级"), NORMAL(2, "普管级"), RELAXED(3, "宽管级"); diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/questionnaire/RiskLevelEnum.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/questionnaire/RiskLevelEnum.java deleted file mode 100644 index 44a8921517..0000000000 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/enums/questionnaire/RiskLevelEnum.java +++ /dev/null @@ -1,37 +0,0 @@ -package cn.iocoder.yudao.module.prison.enums.questionnaire; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * 风险等级枚举 - * - * @author 芋道源码 - */ -@Getter -@AllArgsConstructor -public enum RiskLevelEnum { - - HIGH(1, "高风险"), - MEDIUM(2, "中风险"), - LOW(3, "低风险"); - - /** - * 等级 - */ - private final Integer level; - /** - * 名称 - */ - private final String name; - - public static RiskLevelEnum getByLevel(Integer level) { - for (RiskLevelEnum levelEnum : values()) { - if (levelEnum.getLevel().equals(level)) { - return levelEnum; - } - } - return null; - } - -} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/cell/CellServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/cell/CellServiceImpl.java index 8b70b19d7f..db80b9a08e 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/cell/CellServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/cell/CellServiceImpl.java @@ -117,6 +117,8 @@ public class CellServiceImpl implements CellService { // 转换为 RespVO,填充监区名称 List respList = pageResult.getList().stream().map(cell -> { CellRespVO respVO = BeanUtils.toBean(cell, CellRespVO.class); + // 显式设置创建时间(因为继承字段可能未正确复制) + respVO.setCreateTime(cell.getCreateTime()); // 设置监区名称 if (cell.getAreaId() != null && areaMap.containsKey(cell.getAreaId())) { respVO.setAreaName(areaMap.get(cell.getAreaId()).getName()); diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionService.java index 0c19c2d2d7..626bf47ff3 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionService.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionService.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.prison.service.consumption; import java.util.*; import jakarta.validation.*; import cn.iocoder.yudao.module.prison.controller.admin.consumption.vo.*; -import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDO; import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDetailDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -45,20 +44,20 @@ public interface ConsumptionService { void deleteConsumptionListByIds(List ids); /** - * 获得消费订单 + * 获得消费订单详情(包含罪犯信息) * * @param id 订单编号 - * @return 消费订单 + * @return 消费订单详情 */ - ConsumptionDO getConsumption(Long id); + ConsumptionRespVO getConsumption(Long id); /** - * 获得消费订单分页 + * 获得消费订单分页(包含罪犯信息) * * @param pageReqVO 分页查询 * @return 消费订单分页 */ - PageResult getConsumptionPage(ConsumptionPageReqVO pageReqVO); + PageResult getConsumptionPage(ConsumptionPageReqVO pageReqVO); /** * 获得消费订单明细列表 diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionServiceImpl.java index 14e730d2d9..5d734265a5 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionServiceImpl.java @@ -123,13 +123,19 @@ public class ConsumptionServiceImpl implements ConsumptionService { } @Override - public ConsumptionDO getConsumption(Long id) { - return consumptionMapper.selectById(id); + public ConsumptionRespVO getConsumption(Long id) { + ConsumptionRespVO consumption = consumptionMapper.selectConsumptionDetail(id); + if (consumption != null) { + consumption.setDetails(ConsumptionDetailConvert.INSTANCE.convertListResp( + getConsumptionDetailList(id))); + } + return consumption; } @Override - public PageResult getConsumptionPage(ConsumptionPageReqVO pageReqVO) { - return consumptionMapper.selectPage(pageReqVO); + public PageResult getConsumptionPage(ConsumptionPageReqVO pageReqVO) { + List list = consumptionMapper.selectConsumptionDetailPage(pageReqVO); + return new PageResult<>(list, (long) list.size()); } @Override diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java index 82b718d972..a0f8b83adc 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java @@ -76,6 +76,7 @@ public class PrisonDashboardServiceImpl implements PrisonDashboardService { /** * 转换省份数据,将编码转换为名称 + * 如果传入的已经是中文名称,则直接使用 */ private List convertProvinceData(List rawData) { return rawData.stream() @@ -88,50 +89,57 @@ public class PrisonDashboardServiceImpl implements PrisonDashboardService { } /** - * 根据省份编码获取省份名称 - * 部分常见省份编码映射 + * 根据省份编码或名称获取省份名称 + * 支持两种格式: + * 1. 两位数字编码(如 "31" -> "上海") + * 2. 中文省份名称(如 "上海" -> "上海") */ - private String getProvinceName(Integer provinceCode) { - if (provinceCode == null) { + private String getProvinceName(String provinceCode) { + if (provinceCode == null || provinceCode.isEmpty()) { return "未知"; } - Map provinceMap = Map.ofEntries( - Map.entry(11, "北京"), - Map.entry(12, "天津"), - Map.entry(13, "河北"), - Map.entry(14, "山西"), - Map.entry(15, "内蒙古"), - Map.entry(21, "辽宁"), - Map.entry(22, "吉林"), - Map.entry(23, "黑龙江"), - Map.entry(31, "上海"), - Map.entry(32, "江苏"), - Map.entry(33, "浙江"), - Map.entry(34, "安徽"), - Map.entry(35, "福建"), - Map.entry(36, "江西"), - Map.entry(37, "山东"), - Map.entry(41, "河南"), - Map.entry(42, "湖北"), - Map.entry(43, "湖南"), - Map.entry(44, "广东"), - Map.entry(45, "广西"), - Map.entry(46, "海南"), - Map.entry(50, "重庆"), - Map.entry(51, "四川"), - Map.entry(52, "贵州"), - Map.entry(53, "云南"), - Map.entry(54, "西藏"), - Map.entry(61, "陕西"), - Map.entry(62, "甘肃"), - Map.entry(63, "青海"), - Map.entry(64, "宁夏"), - Map.entry(65, "新疆"), - Map.entry(71, "台湾"), - Map.entry(81, "香港"), - Map.entry(82, "澳门") + // 如果已经是中文,直接返回 + if (!provinceCode.matches("\\d+")) { + return provinceCode; + } + // 如果是数字编码,映射到省份名称 + Map provinceMap = Map.ofEntries( + Map.entry("11", "北京"), + Map.entry("12", "天津"), + Map.entry("13", "河北"), + Map.entry("14", "山西"), + Map.entry("15", "内蒙古"), + Map.entry("21", "辽宁"), + Map.entry("22", "吉林"), + Map.entry("23", "黑龙江"), + Map.entry("31", "上海"), + Map.entry("32", "江苏"), + Map.entry("33", "浙江"), + Map.entry("34", "安徽"), + Map.entry("35", "福建"), + Map.entry("36", "江西"), + Map.entry("37", "山东"), + Map.entry("41", "河南"), + Map.entry("42", "湖北"), + Map.entry("43", "湖南"), + Map.entry("44", "广东"), + Map.entry("45", "广西"), + Map.entry("46", "海南"), + Map.entry("50", "重庆"), + Map.entry("51", "四川"), + Map.entry("52", "贵州"), + Map.entry("53", "云南"), + Map.entry("54", "西藏"), + Map.entry("61", "陕西"), + Map.entry("62", "甘肃"), + Map.entry("63", "青海"), + Map.entry("64", "宁夏"), + Map.entry("65", "新疆"), + Map.entry("71", "台湾"), + Map.entry("81", "香港"), + Map.entry("82", "澳门") ); - return provinceMap.getOrDefault(provinceCode, "未知"); + return provinceMap.getOrDefault(provinceCode, provinceCode); } } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/EvaluationReportService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/EvaluationReportService.java new file mode 100644 index 0000000000..770c963f29 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/EvaluationReportService.java @@ -0,0 +1,217 @@ +package cn.iocoder.yudao.module.prison.service.evaluationreport; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 评估报告 Service 接口 + * + * @author xlcp + */ +public interface EvaluationReportService { + + // ========== 模板管理 ========== + + /** + * 创建评估模板 + */ + Long createTemplate(EvaluationTemplateSaveReqVO createReqVO); + + /** + * 更新评估模板 + */ + void updateTemplate(EvaluationTemplateSaveReqVO updateReqVO); + + /** + * 删除评估模板 + */ + void deleteTemplate(Long id); + + /** + * 批量删除评估模板 + */ + void deleteTemplateListByIds(List ids); + + /** + * 获得评估模板 + */ + EvaluationTemplateDO getTemplate(Long id); + + /** + * 获得评估模板分页 + */ + PageResult getTemplatePage(EvaluationTemplatePageReqVO pageReqVO); + + /** + * 获取启用的模板列表 + */ + List getEnabledTemplateList(); + + // ========== 维度配置管理 ========== + + /** + * 创建评估维度 + */ + Long createDimension(EvaluationDimensionSaveReqVO createReqVO); + + /** + * 更新评估维度 + */ + void updateDimension(EvaluationDimensionSaveReqVO updateReqVO); + + /** + * 删除评估维度 + */ + void deleteDimension(Long id); + + /** + * 批量删除评估维度 + */ + void deleteDimensionListByIds(List ids); + + /** + * 获得评估维度 + */ + EvaluationDimensionDO getDimension(Long id); + + /** + * 获得评估维度分页 + */ + PageResult getDimensionPage(EvaluationDimensionPageReqVO pageReqVO); + + /** + * 根据模板ID获取维度列表 + */ + List getDimensionsByTemplateId(Long templateId); + + // ========== 评估报告管理 ========== + + /** + * 创建评估报告 + */ + Long createReport(EvaluationReportSaveReqVO createReqVO); + + /** + * 更新评估报告 + */ + void updateReport(EvaluationReportSaveReqVO updateReqVO); + + /** + * 删除评估报告 + */ + void deleteReport(Long id); + + /** + * 批量删除评估报告 + */ + void deleteReportListByIds(List ids); + + /** + * 获得评估报告 + */ + EvaluationReportDO getReport(Long id); + + /** + * 获得评估报告分页 + */ + PageResult getReportPage(EvaluationReportPageReqVO pageReqVO); + + /** + * 根据报告编号获取报告 + */ + EvaluationReportDO getReportByReportNo(String reportNo); + + /** + * 根据罪犯ID获取报告列表 + */ + List getReportsByPrisonerId(Long prisonerId); + + /** + * 提交报告审核 + */ + void submitReport(Long id); + + /** + * 审核报告 + */ + void auditReport(EvaluationReportAuditReqVO auditReqVO); + + /** + * 作废报告 + */ + void voidReport(Long id); + + // ========== 维度数据管理 ========== + + /** + * 创建维度数据 + */ + Long createDimensionData(EvaluationDimensionDataSaveReqVO createReqVO); + + /** + * 批量创建维度数据 + */ + void createDimensionDataList(List list); + + /** + * 更新维度数据 + */ + void updateDimensionData(EvaluationDimensionDataSaveReqVO updateReqVO); + + /** + * 删除维度数据 + */ + void deleteDimensionData(Long id); + + /** + * 根据报告ID获取维度数据列表 + */ + List getDimensionDataListByReportId(Long reportId); + + // ========== 快捷评语库管理 ========== + + /** + * 创建快捷评语 + */ + Long createComment(ReportCommentSaveReqVO createReqVO); + + /** + * 更新快捷评语 + */ + void updateComment(ReportCommentSaveReqVO updateReqVO); + + /** + * 删除快捷评语 + */ + void deleteComment(Long id); + + /** + * 批量删除快捷评语 + */ + void deleteCommentListByIds(List ids); + + /** + * 获得快捷评语 + */ + ReportCommentDO getComment(Long id); + + /** + * 获得快捷评语分页 + */ + PageResult getCommentPage(ReportCommentPageReqVO pageReqVO); + + /** + * 根据类型和等级获取评语列表 + */ + List getCommentsByTypeAndLevel(Integer commentType, Integer level); + + /** + * 根据维度ID获取评语列表 + */ + List getCommentsByDimensionId(Long dimensionId); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/EvaluationReportServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/EvaluationReportServiceImpl.java new file mode 100644 index 0000000000..865c86a32a --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/EvaluationReportServiceImpl.java @@ -0,0 +1,386 @@ +package cn.iocoder.yudao.module.prison.service.evaluationreport; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.module.prison.controller.admin.evaluationreport.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.evaluationreport.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport.*; +import cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport.EvaluationTemplateMapper; +import cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport.EvaluationDimensionMapper; +import cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport.EvaluationReportMapper; +import cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport.EvaluationDimensionDataMapper; +import cn.iocoder.yudao.module.prison.dal.mysql.evaluationreport.ReportCommentMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; + +import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; + +/** + * 评估报告 Service 实现类 + * + * @author xlcp + */ +@Service +@Validated +public class EvaluationReportServiceImpl implements EvaluationReportService { + + @Resource + private EvaluationTemplateMapper templateMapper; + + @Resource + private EvaluationDimensionMapper dimensionMapper; + + @Resource + private EvaluationReportMapper evaluationReportMapper; + + @Resource + private EvaluationDimensionDataMapper dimensionDataMapper; + + @Resource + private ReportCommentMapper commentMapper; + + // ========== 模板管理 ========== + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createTemplate(EvaluationTemplateSaveReqVO createReqVO) { + // 插入 + EvaluationTemplateDO template = BeanUtils.toBean(createReqVO, EvaluationTemplateDO.class); + templateMapper.insert(template); + return template.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateTemplate(EvaluationTemplateSaveReqVO updateReqVO) { + validateTemplateExists(updateReqVO.getId()); + EvaluationTemplateDO updateObj = BeanUtils.toBean(updateReqVO, EvaluationTemplateDO.class); + templateMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteTemplate(Long id) { + validateTemplateExists(id); + templateMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteTemplateListByIds(List ids) { + templateMapper.deleteByIds(ids); + } + + @Override + public EvaluationTemplateDO getTemplate(Long id) { + return templateMapper.selectById(id); + } + + @Override + public PageResult getTemplatePage(EvaluationTemplatePageReqVO pageReqVO) { + return templateMapper.selectPage(pageReqVO); + } + + @Override + public List getEnabledTemplateList() { + return templateMapper.selectList(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(EvaluationTemplateDO::getStatus, 1) + .eq(EvaluationTemplateDO::getDeleted, false) + .orderByAsc(EvaluationTemplateDO::getSort)); + } + + private void validateTemplateExists(Long id) { + if (templateMapper.selectById(id) == null) { + throw exception(EVALUATION_TEMPLATE_NOT_EXISTS); + } + } + + // ========== 维度配置管理 ========== + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createDimension(EvaluationDimensionSaveReqVO createReqVO) { + // 校验模板是否存在 + if (createReqVO.getTemplateId() != null) { + validateTemplateExists(createReqVO.getTemplateId()); + } + EvaluationDimensionDO dimension = BeanUtils.toBean(createReqVO, EvaluationDimensionDO.class); + dimensionMapper.insert(dimension); + return dimension.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateDimension(EvaluationDimensionSaveReqVO updateReqVO) { + validateDimensionExists(updateReqVO.getId()); + EvaluationDimensionDO updateObj = BeanUtils.toBean(updateReqVO, EvaluationDimensionDO.class); + dimensionMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteDimension(Long id) { + validateDimensionExists(id); + dimensionMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteDimensionListByIds(List ids) { + dimensionMapper.deleteByIds(ids); + } + + @Override + public EvaluationDimensionDO getDimension(Long id) { + return dimensionMapper.selectById(id); + } + + @Override + public PageResult getDimensionPage(EvaluationDimensionPageReqVO pageReqVO) { + return dimensionMapper.selectPage(pageReqVO); + } + + @Override + public List getDimensionsByTemplateId(Long templateId) { + return dimensionMapper.selectListByTemplateId(templateId); + } + + private void validateDimensionExists(Long id) { + if (dimensionMapper.selectById(id) == null) { + throw exception(EVALUATION_DIMENSION_NOT_EXISTS); + } + } + + // ========== 评估报告管理 ========== + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createReport(EvaluationReportSaveReqVO createReqVO) { + EvaluationReportDO report = BeanUtils.toBean(createReqVO, EvaluationReportDO.class); + // 生成报告编号 + report.setReportNo(generateReportNo()); + // 初始状态为草稿 + if (report.getStatus() == null) { + report.setStatus(1); + } + // AI生成状态初始为待生成 + if (report.getAiStatus() == null) { + report.setAiStatus(1); + } + evaluationReportMapper.insert(report); + return report.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateReport(EvaluationReportSaveReqVO updateReqVO) { + validateReportExists(updateReqVO.getId()); + EvaluationReportDO updateObj = BeanUtils.toBean(updateReqVO, EvaluationReportDO.class); + evaluationReportMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteReport(Long id) { + validateReportExists(id); + evaluationReportMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteReportListByIds(List ids) { + evaluationReportMapper.deleteByIds(ids); + } + + @Override + public EvaluationReportDO getReport(Long id) { + return evaluationReportMapper.selectById(id); + } + + @Override + public PageResult getReportPage(EvaluationReportPageReqVO pageReqVO) { + return evaluationReportMapper.selectPage(pageReqVO); + } + + @Override + public EvaluationReportDO getReportByReportNo(String reportNo) { + return evaluationReportMapper.selectByReportNo(reportNo); + } + + @Override + public List getReportsByPrisonerId(Long prisonerId) { + return evaluationReportMapper.selectListByPrisonerId(prisonerId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void submitReport(Long id) { + EvaluationReportDO report = validateReportExists(id); + if (!report.getStatus().equals(1)) { + throw exception(EVALUATION_REPORT_STATUS_ERROR); + } + EvaluationReportDO updateObj = new EvaluationReportDO(); + updateObj.setId(id); + updateObj.setStatus(2); // 待审核 + evaluationReportMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void auditReport(EvaluationReportAuditReqVO auditReqVO) { + EvaluationReportDO report = validateReportExists(auditReqVO.getId()); + if (!report.getStatus().equals(2)) { + throw exception(EVALUATION_REPORT_STATUS_ERROR); + } + EvaluationReportDO updateObj = new EvaluationReportDO(); + updateObj.setId(auditReqVO.getId()); + updateObj.setStatus(auditReqVO.getStatus()); + updateObj.setAuditOpinion(auditReqVO.getAuditOpinion()); + evaluationReportMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void voidReport(Long id) { + EvaluationReportDO report = validateReportExists(id); + EvaluationReportDO updateObj = new EvaluationReportDO(); + updateObj.setId(id); + updateObj.setStatus(4); // 已作废 + evaluationReportMapper.updateById(updateObj); + } + + private EvaluationReportDO validateReportExists(Long id) { + EvaluationReportDO report = evaluationReportMapper.selectById(id); + if (report == null) { + throw exception(EVALUATION_REPORT_NOT_EXISTS); + } + return report; + } + + private String generateReportNo() { + // 格式:PGEV + 年月日 + 6位流水号 + String dateStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); + String randomStr = String.format("%06d", new Random().nextInt(999999)); + return "PGEV" + dateStr + randomStr; + } + + // ========== 维度数据管理 ========== + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createDimensionData(EvaluationDimensionDataSaveReqVO createReqVO) { + EvaluationDimensionDataDO data = BeanUtils.toBean(createReqVO, EvaluationDimensionDataDO.class); + dimensionDataMapper.insert(data); + return data.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void createDimensionDataList(List list) { + if (CollUtil.isEmpty(list)) { + return; + } + List dataList = BeanUtils.toBean(list, EvaluationDimensionDataDO.class); + dimensionDataMapper.insertBatch(dataList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateDimensionData(EvaluationDimensionDataSaveReqVO updateReqVO) { + validateDimensionDataExists(updateReqVO.getId()); + EvaluationDimensionDataDO updateObj = BeanUtils.toBean(updateReqVO, EvaluationDimensionDataDO.class); + dimensionDataMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteDimensionData(Long id) { + validateDimensionDataExists(id); + dimensionDataMapper.deleteById(id); + } + + @Override + public List getDimensionDataListByReportId(Long reportId) { + return dimensionDataMapper.selectListByReportId(reportId); + } + + private void validateDimensionDataExists(Long id) { + if (dimensionDataMapper.selectById(id) == null) { + throw exception(EVALUATION_DIMENSION_DATA_NOT_EXISTS); + } + } + + // ========== 快捷评语库管理 ========== + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createComment(ReportCommentSaveReqVO createReqVO) { + ReportCommentDO comment = BeanUtils.toBean(createReqVO, ReportCommentDO.class); + commentMapper.insert(comment); + return comment.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateComment(ReportCommentSaveReqVO updateReqVO) { + validateCommentExists(updateReqVO.getId()); + ReportCommentDO updateObj = BeanUtils.toBean(updateReqVO, ReportCommentDO.class); + commentMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteComment(Long id) { + validateCommentExists(id); + commentMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteCommentListByIds(List ids) { + commentMapper.deleteByIds(ids); + } + + @Override + public ReportCommentDO getComment(Long id) { + return commentMapper.selectById(id); + } + + @Override + public PageResult getCommentPage(ReportCommentPageReqVO pageReqVO) { + return commentMapper.selectPage(pageReqVO); + } + + @Override + public List getCommentsByTypeAndLevel(Integer commentType, Integer level) { + return commentMapper.selectListByTypeAndLevel(commentType, level); + } + + @Override + public List getCommentsByDimensionId(Long dimensionId) { + return commentMapper.selectListByDimensionId(dimensionId); + } + + private void validateCommentExists(Long id) { + if (commentMapper.selectById(id) == null) { + throw exception(REPORT_COMMENT_NOT_EXISTS); + } + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/impl/PrisonerServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/impl/PrisonerServiceImpl.java index 48b6d13022..728ab8e10f 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/impl/PrisonerServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/impl/PrisonerServiceImpl.java @@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.prison.dal.mysql.PrisonerMapper; import cn.iocoder.yudao.module.prison.dal.mysql.area.AreaMapper; import cn.iocoder.yudao.module.prison.dal.mysql.cell.CellMapper; import cn.iocoder.yudao.module.prison.enums.AreaTypeEnum; +import cn.iocoder.yudao.module.prison.enums.CellStatusEnum; import cn.iocoder.yudao.module.prison.enums.SupervisionLevelEnum; import cn.iocoder.yudao.module.prison.service.PrisonerService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -180,7 +181,7 @@ public class PrisonerServiceImpl implements PrisonerService { vo.setOriginalSentence(prisoner.getOriginalSentence()); vo.setImprisonmentDate(prisoner.getImprisonmentDate()); vo.setReleaseDate(prisoner.getReleaseDate()); - vo.setReleaseType(prisoner.getReleaseType()); + vo.setReleaseType(prisoner.getReleaseType() != null ? prisoner.getReleaseType().getValue() : null); vo.setReleaseReason(prisoner.getReleaseReason()); vo.setPhoto(prisoner.getPhoto()); vo.setPrisonAreaId(prisoner.getPrisonAreaId()); @@ -204,14 +205,7 @@ public class PrisonerServiceImpl implements PrisonerService { // 设置风险等级 if (prisoner.getRiskLevel() != null) { vo.setRiskLevel(prisoner.getRiskLevel().getValue()); - // 风险等级标签 - String[] riskLabels = {"", "低风险", "中风险", "高风险", "极高风险"}; - Integer value = prisoner.getRiskLevel().getValue(); - if (value >= 1 && value <= 4) { - vo.setRiskLevelName(riskLabels[value]); - } else { - vo.setRiskLevelName(prisoner.getRiskLevel().getName()); - } + vo.setRiskLevelName(prisoner.getRiskLevel().getName()); } // 设置状态 @@ -263,17 +257,17 @@ public class PrisonerServiceImpl implements PrisonerService { // 2. 校验目标监室是否存在 CellDO targetCell = cellMapper.selectById(reqVO.getTargetCellId()); if (targetCell == null) { - throw new IllegalArgumentException("目标监室不存在"); + throw exception(PRISON_CELL_NOT_EXISTS); } // 3. 校验目标监室是否启用 - if (targetCell.getStatus() != 1) { - throw new IllegalArgumentException("目标监室已禁用"); + if (targetCell.getStatus() != null && !CellStatusEnum.ENABLE.getStatus().equals(targetCell.getStatus())) { + throw exception(PRISON_CELL_STATUS_DISABLED); } // 4. 校验床位是否已满 if (targetCell.getCurrentCount() >= targetCell.getCapacity()) { - throw new IllegalArgumentException("目标监室床位已满"); + throw exception(PRISON_CELL_CAPACITY_FULL); } // 5. 校验严管犯不能调入普通监区 @@ -282,13 +276,13 @@ public class PrisonerServiceImpl implements PrisonerService { AreaDO targetArea = areaMapper.selectById(targetCell.getAreaId()); if (targetArea != null && targetArea.getType() != null && targetArea.getType() != AreaTypeEnum.STRICT.getValue()) { - throw new IllegalArgumentException("严管级罪犯不能调入普通监区"); + throw exception(PRISON_TRANSFER_STRICT_FORBIDDEN); } } // 6. 校验是否在同一监室 - if (prisoner.getPrisonCellId().equals(reqVO.getTargetCellId())) { - throw new IllegalArgumentException("目标监室与当前监室相同,无需调监"); + if (reqVO.getTargetCellId().equals(prisoner.getPrisonCellId())) { + throw exception(PRISON_TRANSFER_SAME_CELL); } // 7. 记录原位置 diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/question/QuestionServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/question/QuestionServiceImpl.java index e91e4f0210..c32ebcf552 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/question/QuestionServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/question/QuestionServiceImpl.java @@ -11,13 +11,12 @@ import cn.iocoder.yudao.module.prison.controller.admin.question.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.question.QuestionDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.prison.convert.question.QuestionConvert; import cn.iocoder.yudao.module.prison.dal.mysql.question.QuestionMapper; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList; import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; /** @@ -35,7 +34,7 @@ public class QuestionServiceImpl implements QuestionService { @Override public Long createQuestion(QuestionSaveReqVO createReqVO) { // 插入 - QuestionDO question = BeanUtils.toBean(createReqVO, QuestionDO.class); + QuestionDO question = QuestionConvert.INSTANCE.convert(createReqVO); questionMapper.insert(question); // 返回 @@ -47,7 +46,7 @@ public class QuestionServiceImpl implements QuestionService { // 校验存在 validateQuestionExists(updateReqVO.getId()); // 更新 - QuestionDO updateObj = BeanUtils.toBean(updateReqVO, QuestionDO.class); + QuestionDO updateObj = QuestionConvert.INSTANCE.convert(updateReqVO); questionMapper.updateById(updateObj); } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnaire/QuestionnaireServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnaire/QuestionnaireServiceImpl.java index 8d5853f345..c5d63550ef 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnaire/QuestionnaireServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnaire/QuestionnaireServiceImpl.java @@ -11,13 +11,11 @@ import cn.iocoder.yudao.module.prison.controller.admin.questionnaire.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire.QuestionnaireDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.prison.convert.questionnaire.QuestionnaireConvert; import cn.iocoder.yudao.module.prison.dal.mysql.questionnaire.QuestionnaireMapper; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList; import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; /** @@ -35,7 +33,7 @@ public class QuestionnaireServiceImpl implements QuestionnaireService { @Override public Long createQuestionnaire(QuestionnaireSaveReqVO createReqVO) { // 插入 - QuestionnaireDO questionnaire = BeanUtils.toBean(createReqVO, QuestionnaireDO.class); + QuestionnaireDO questionnaire = QuestionnaireConvert.INSTANCE.convert(createReqVO); questionnaireMapper.insert(questionnaire); // 返回 @@ -47,7 +45,7 @@ public class QuestionnaireServiceImpl implements QuestionnaireService { // 校验存在 validateQuestionnaireExists(updateReqVO.getId()); // 更新 - QuestionnaireDO updateObj = BeanUtils.toBean(updateReqVO, QuestionnaireDO.class); + QuestionnaireDO updateObj = QuestionnaireConvert.INSTANCE.convert(updateReqVO); questionnaireMapper.updateById(updateObj); } diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnairerecord/QuestionnaireRecordServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnairerecord/QuestionnaireRecordServiceImpl.java index b7b6f90afe..477c737fda 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnairerecord/QuestionnaireRecordServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnairerecord/QuestionnaireRecordServiceImpl.java @@ -13,11 +13,13 @@ import cn.iocoder.yudao.module.prison.controller.admin.questionnairerecord.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.questionnairerecord.QuestionnaireRecordDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.prison.dal.mysql.questionnairerecord.QuestionnaireRecordMapper; import cn.iocoder.yudao.module.prison.dal.mysql.questionnaire.QuestionnaireMapper; import cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire.QuestionnaireDO; +import cn.iocoder.yudao.module.prison.dal.dataobject.PrisonerDO; +import cn.iocoder.yudao.module.prison.dal.mysql.PrisonerMapper; import cn.iocoder.yudao.module.prison.service.answer.AnswerService; +import cn.iocoder.yudao.module.prison.convert.questionnairerecord.QuestionnaireRecordConvert; import cn.iocoder.yudao.module.prison.enums.QuestionnaireRecordPassStatusEnum; import cn.iocoder.yudao.module.prison.enums.QuestionnaireRecordStatusEnum; import cn.iocoder.yudao.module.prison.enums.RiskLevelEnum; @@ -40,13 +42,16 @@ public class QuestionnaireRecordServiceImpl implements QuestionnaireRecordServic @Resource private QuestionnaireMapper questionnaireMapper; + @Resource + private PrisonerMapper prisonerMapper; + @Resource private AnswerService answerService; @Override public Long createQuestionnaireRecord(QuestionnaireRecordSaveReqVO createReqVO) { // 插入 - QuestionnaireRecordDO questionnaireRecord = BeanUtils.toBean(createReqVO, QuestionnaireRecordDO.class); + QuestionnaireRecordDO questionnaireRecord = QuestionnaireRecordConvert.INSTANCE.convert(createReqVO); questionnaireRecordMapper.insert(questionnaireRecord); return questionnaireRecord.getId(); } @@ -56,7 +61,7 @@ public class QuestionnaireRecordServiceImpl implements QuestionnaireRecordServic // 校验存在 validateQuestionnaireRecordExists(updateReqVO.getId()); // 更新 - QuestionnaireRecordDO updateObj = BeanUtils.toBean(updateReqVO, QuestionnaireRecordDO.class); + QuestionnaireRecordDO updateObj = QuestionnaireRecordConvert.INSTANCE.convert(updateReqVO); questionnaireRecordMapper.updateById(updateObj); } @@ -115,12 +120,21 @@ public class QuestionnaireRecordServiceImpl implements QuestionnaireRecordServic QuestionnaireRecordDO lastRecord = null; for (Long prisonerId : reqVO.getPrisonerIds()) { + // 获取罪犯信息 + PrisonerDO prisoner = prisonerMapper.selectById(prisonerId); + if (prisoner == null) { + throw exception(PRISONER_NOT_EXISTS); + } + QuestionnaireRecordDO record = new QuestionnaireRecordDO(); record.setQuestionnaireId(reqVO.getQuestionnaireId()); record.setQuestionnaireName(questionnaireName); record.setPrisonerId(prisonerId); + record.setPrisonerNo(prisoner.getPrisonerNo()); + record.setPrisonerName(prisoner.getName()); record.setStatus(QuestionnaireRecordStatusEnum.PENDING.getStatus()); // 待测评 record.setDeadline(reqVO.getDeadline()); + record.setAnswerTime(LocalDateTime.now()); // 答题时间 record.setRemark(reqVO.getRemark()); record.setParticipantCount(0); record.setCompletedCount(0); diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/CommentCategoryService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/CommentCategoryService.java new file mode 100644 index 0000000000..96fa806996 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/CommentCategoryService.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.prison.service.quickcomment; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.CommentCategoryDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +/** + * 快捷评语分类 Service 接口 + * + * @author xlcp + */ +public interface CommentCategoryService { + + /** + * 查询分类列表 + */ + List getCategoryList(CommentCategorySaveReqVO reqVO); + + /** + * 获得分类详情 + */ + CommentCategoryDO getCategory(Long id); + + /** + * 初始化快捷评语分类和评语(预置数据) + * @return 初始化的分类数量 + */ + int initCategories(); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/QuickCommentService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/QuickCommentService.java new file mode 100644 index 0000000000..93bc5876e4 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/QuickCommentService.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.prison.service.quickcomment; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.QuickCommentDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +/** + * 快捷评语 Service 接口 + * + * @author xlcp + */ +public interface QuickCommentService { + + /** + * 创建快捷评语 + */ + Long createQuickComment(@Valid QuickCommentSaveReqVO createReqVO); + + /** + * 更新快捷评语 + */ + void updateQuickComment(@Valid QuickCommentSaveReqVO updateReqVO); + + /** + * 删除快捷评语 + */ + void deleteQuickComment(Long id); + + /** + * 批量删除快捷评语 + */ + void deleteQuickCommentListByIds(List ids); + + /** + * 获得快捷评语详情 + */ + QuickCommentDO getQuickComment(Long id); + + /** + * 获得快捷评语分页 + */ + PageResult getQuickCommentPage(QuickCommentPageReqVO pageReqVO); + + /** + * 导入快捷评语 + */ + int importComments(Long categoryId, List contents); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/impl/CommentCategoryServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/impl/CommentCategoryServiceImpl.java new file mode 100644 index 0000000000..3bf2a744aa --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/impl/CommentCategoryServiceImpl.java @@ -0,0 +1,160 @@ +package cn.iocoder.yudao.module.prison.service.quickcomment.impl; + +import cn.iocoder.yudao.module.prison.service.quickcomment.CommentCategoryService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; + +import java.util.*; +import java.util.Arrays; +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.CommentCategoryPageReqVO; +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.CommentCategorySaveReqVO; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.CommentCategoryDO; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.QuickCommentDO; +import cn.iocoder.yudao.module.prison.dal.mysql.quickcomment.CommentCategoryMapper; +import cn.iocoder.yudao.module.prison.dal.mysql.quickcomment.QuickCommentMapper; + +/** + * 快捷评语分类 Service 实现类 + * + * @author xlcp + */ +@Service +public class CommentCategoryServiceImpl implements CommentCategoryService { + + @Resource + private CommentCategoryMapper commentCategoryMapper; + + @Resource + private QuickCommentMapper quickCommentMapper; + + @Override + public List getCategoryList(CommentCategorySaveReqVO reqVO) { + return commentCategoryMapper.selectList(new LambdaQueryWrapper() + .eq(reqVO.getType() != null, CommentCategoryDO::getType, reqVO.getType()) + .eq(reqVO.getStatus() != null, CommentCategoryDO::getStatus, reqVO.getStatus()) + .orderByAsc(CommentCategoryDO::getSort)); + } + + @Override + public CommentCategoryDO getCategory(Long id) { + return commentCategoryMapper.selectById(id); + } + + @Override + public int initCategories() { + // 检查是否已有数据 + Long existingCount = commentCategoryMapper.selectCount(new LambdaQueryWrapper<>()); + if (existingCount > 0) { + return 0; // 已存在数据,不重复初始化 + } + + int categoryCount = 0; + + // 入监评估分类 (type=1) + CommentCategoryDO category1 = new CommentCategoryDO(); + category1.setName("入监评估"); + category1.setType(1); + category1.setSort(1); + category1.setStatus(1); + commentCategoryMapper.insert(category1); + categoryCount++; + + // 批量插入入监评语 + saveQuickComments(category1.getId(), Arrays.asList( + "该犯入监后能够遵守监规纪律,服从管理安排。", + "该犯认罪悔罪态度较好,对所犯罪行有深刻认识。", + "该犯入监适应较快,能够积极参加各项教育活动。", + "该犯性格内向,与同改相处融洽,无矛盾纠纷。", + "该犯家庭关系和睦,家属接见积极。" + )); + + // 定期评估分类 (type=2) + CommentCategoryDO category2 = new CommentCategoryDO(); + category2.setName("定期评估"); + category2.setType(2); + category2.setSort(2); + category2.setStatus(1); + commentCategoryMapper.insert(category2); + categoryCount++; + + // 批量插入定期评语 + saveQuickComments(category2.getId(), Arrays.asList( + "本季度考核期间,该犯表现良好,无违规违纪记录。", + "该犯能够积极参加劳动改造,完成劳动任务较好。", + "该犯参加思想教育课态度端正,学习笔记认真。", + "该犯近期思想稳定,情绪良好,无异常表现。", + "该犯与人相处融洽,积极帮助有困难的同改。" + )); + + // 出监评估分类 (type=3) + CommentCategoryDO category3 = new CommentCategoryDO(); + category3.setName("出监评估"); + category3.setType(3); + category3.setSort(3); + category3.setStatus(1); + commentCategoryMapper.insert(category3); + categoryCount++; + + // 批量插入出监评语 + saveQuickComments(category3.getId(), Arrays.asList( + "该犯服刑期间认真改造,达到减刑条件,建议依法减刑。", + "该犯确有悔改表现,符合假释条件,建议依法假释。", + "该犯改造表现良好,建议按期释放。", + "该犯已认识所犯罪行的社会危害性,悔罪态度真诚。", + "该犯已具备重新融入社会的条件和能力。" + )); + + // 减刑评估分类 (type=4) + CommentCategoryDO category4 = new CommentCategoryDO(); + category4.setName("减刑评估"); + category4.setType(4); + category4.setSort(4); + category4.setStatus(1); + commentCategoryMapper.insert(category4); + categoryCount++; + + // 批量插入减刑评语 + saveQuickComments(category4.getId(), Arrays.asList( + "该犯在服刑期间获得表扬多次,符合减刑条件。", + "该犯积极参加劳动改造,表现突出,建议从宽减刑。", + "该犯认罪悔罪,符合减刑条件,建议依法减刑。", + "该犯改造表现良好,无违规违纪,建议减刑。", + "该犯符合减刑起始时间间隔规定,建议减刑。" + )); + + // 专项评估分类 (type=5) + CommentCategoryDO category5 = new CommentCategoryDO(); + category5.setName("专项评估"); + category5.setType(5); + category5.setSort(5); + category5.setStatus(1); + commentCategoryMapper.insert(category5); + categoryCount++; + + // 批量插入专项评语 + saveQuickComments(category5.getId(), Arrays.asList( + "该犯心理健康评估结果正常,无心理障碍。", + "该犯危险性评估等级为低危,监管难度较小。", + "该犯社会支持系统较好,家庭帮教条件具备。", + "该犯职业技能培训合格,具备就业谋生能力。", + "该犯法律知识考核合格,法律意识有所增强。" + )); + + return categoryCount; + } + + private void saveQuickComments(Long categoryId, List contents) { + int sort = 1; + for (String content : contents) { + QuickCommentDO comment = new QuickCommentDO(); + comment.setCategoryId(categoryId); + comment.setContent(content); + comment.setUsageCount(0); + comment.setSort(sort++); + comment.setStatus(1); + quickCommentMapper.insert(comment); + } + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/impl/QuickCommentServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/impl/QuickCommentServiceImpl.java new file mode 100644 index 0000000000..1df38d6737 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/quickcomment/impl/QuickCommentServiceImpl.java @@ -0,0 +1,110 @@ +package cn.iocoder.yudao.module.prison.service.quickcomment.impl; + +import cn.iocoder.yudao.module.prison.service.quickcomment.QuickCommentService; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.List; +import cn.iocoder.yudao.module.prison.controller.admin.quickcomment.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.quickcomment.QuickCommentDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.prison.dal.mysql.quickcomment.QuickCommentMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; + +/** + * 快捷评语 Service 实现类 + * + * @author xlcp + */ +@Service +@Validated +public class QuickCommentServiceImpl implements QuickCommentService { + + @Resource + private QuickCommentMapper quickCommentMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createQuickComment(QuickCommentSaveReqVO createReqVO) { + // 插入 + QuickCommentDO quickComment = BeanUtils.toBean(createReqVO, QuickCommentDO.class); + quickComment.setUsageCount(0); + quickCommentMapper.insert(quickComment); + // 返回 + return quickComment.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateQuickComment(QuickCommentSaveReqVO updateReqVO) { + // 校验存在 + validateQuickCommentExists(updateReqVO.getId()); + // 更新 + QuickCommentDO updateObj = BeanUtils.toBean(updateReqVO, QuickCommentDO.class); + quickCommentMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteQuickComment(Long id) { + // 校验存在 + validateQuickCommentExists(id); + // 删除 + quickCommentMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteQuickCommentListByIds(List ids) { + // 删除 + quickCommentMapper.deleteByIds(ids); + } + + private void validateQuickCommentExists(Long id) { + if (quickCommentMapper.selectById(id) == null) { + throw exception(REPORT_COMMENT_NOT_EXISTS); + } + } + + @Override + public QuickCommentDO getQuickComment(Long id) { + return quickCommentMapper.selectById(id); + } + + @Override + public PageResult getQuickCommentPage(QuickCommentPageReqVO pageReqVO) { + // 使用 MyBatis-Plus 分页查询 + PageResult pageResult = quickCommentMapper.selectPage(pageReqVO); + // 转换为 RespVO + List respList = BeanUtils.toBean(pageResult.getList(), QuickCommentRespVO.class); + return new PageResult<>(respList, pageResult.getTotal()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int importComments(Long categoryId, List contents) { + int count = 0; + for (String content : contents) { + if (content == null || content.trim().isEmpty()) { + continue; + } + QuickCommentDO comment = new QuickCommentDO(); + comment.setCategoryId(categoryId); + comment.setContent(content.trim()); + comment.setUsageCount(0); + comment.setSort(0); + comment.setStatus(1); + quickCommentMapper.insert(comment); + count++; + } + return count; + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/release/impl/ReleaseServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/release/impl/ReleaseServiceImpl.java index 9f9b2e2bbc..b4ac5d727e 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/release/impl/ReleaseServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/release/impl/ReleaseServiceImpl.java @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.prison.dal.mysql.PrisonerAreaLogMapper; import cn.iocoder.yudao.module.prison.dal.mysql.PrisonerMapper; import cn.iocoder.yudao.module.prison.dal.mysql.release.ReleaseMapper; import cn.iocoder.yudao.module.prison.enums.PrisonerStatusEnum; +import cn.iocoder.yudao.module.prison.enums.ReleaseTypeEnum; import cn.iocoder.yudao.module.prison.service.release.ReleaseService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.annotation.Resource; @@ -141,7 +142,7 @@ public class ReleaseServiceImpl implements ReleaseService { PrisonerDO prisoner = prisonerMapper.selectById(release.getPrisonerId()); if (prisoner != null) { prisoner.setStatus(PrisonerStatusEnum.RELEASED); - prisoner.setReleaseType(release.getReleaseType()); + prisoner.setReleaseType(ReleaseTypeEnum.fromValue(release.getReleaseType())); prisoner.setReleaseReason(release.getReleaseReason()); prisonerMapper.updateById(prisoner); diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/report/ReportService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/report/ReportService.java new file mode 100644 index 0000000000..848bf3e2d0 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/report/ReportService.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.prison.service.report; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.prison.controller.admin.report.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.report.ReportDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +/** + * 评估报告 Service 接口 + * + * @author xlcp + */ +public interface ReportService { + + /** + * 创建评估报告 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createReport(@Valid ReportSaveReqVO createReqVO); + + /** + * 更新评估报告 + * + * @param updateReqVO 更新信息 + */ + void updateReport(@Valid ReportSaveReqVO updateReqVO); + + /** + * 删除评估报告 + * + * @param id 编号 + */ + void deleteReport(Long id); + + /** + * 批量删除评估报告 + * + * @param ids 编号列表 + */ + void deleteReportListByIds(List ids); + + /** + * 获得评估报告详情 + * + * @param id 编号 + * @return 评估报告详情 + */ + ReportDO getReport(Long id); + + /** + * 获得评估报告分页 + * + * @param pageReqVO 分页查询 + * @return 评估报告分页 + */ + PageResult getReportPage(ReportPageReqVO pageReqVO); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/report/impl/ReportServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/report/impl/ReportServiceImpl.java new file mode 100644 index 0000000000..ccfcf95296 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/report/impl/ReportServiceImpl.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.module.prison.service.report.impl; + +import cn.iocoder.yudao.module.prison.service.report.ReportService; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.prison.controller.admin.report.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.report.ReportDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.prison.dal.mysql.report.ReportMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; + +/** + * 评估报告 Service 实现类 + * + * @author xlcp + */ +@Service +@Validated +public class ReportServiceImpl implements ReportService { + + @Resource + private ReportMapper reportMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createReport(ReportSaveReqVO createReqVO) { + // 插入 + ReportDO report = BeanUtils.toBean(createReqVO, ReportDO.class); + report.setVersion(1); + reportMapper.insert(report); + // 返回 + return report.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateReport(ReportSaveReqVO updateReqVO) { + // 校验存在 + validateReportExists(updateReqVO.getId()); + // 更新 + ReportDO updateObj = BeanUtils.toBean(updateReqVO, ReportDO.class); + reportMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteReport(Long id) { + // 校验存在 + validateReportExists(id); + // 删除 + reportMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteReportListByIds(List ids) { + // 删除 + reportMapper.deleteByIds(ids); + } + + private void validateReportExists(Long id) { + if (reportMapper.selectById(id) == null) { + throw exception(PRISON_REPORT_NOT_EXISTS); + } + } + + @Override + public ReportDO getReport(Long id) { + return reportMapper.selectById(id); + } + + @Override + public PageResult getReportPage(ReportPageReqVO pageReqVO) { + return reportMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/reporttemplate/ReportTemplateService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/reporttemplate/ReportTemplateService.java new file mode 100644 index 0000000000..5815d95e1e --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/reporttemplate/ReportTemplateService.java @@ -0,0 +1,85 @@ +package cn.iocoder.yudao.module.prison.service.reporttemplate; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo.ReportTemplatePageReqVO; +import cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo.ReportTemplateSaveReqVO; +import cn.iocoder.yudao.module.prison.dal.dataobject.reporttemplate.ReportTemplateDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; + +/** + * 评估报告模板 Service 接口 + * + * @author xlcp + */ +public interface ReportTemplateService { + + /** + * 创建评估报告模板 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createReportTemplate(@Valid ReportTemplateSaveReqVO createReqVO); + + /** + * 更新评估报告模板 + * + * @param updateReqVO 更新信息 + */ + void updateReportTemplate(@Valid ReportTemplateSaveReqVO updateReqVO); + + /** + * 删除评估报告模板 + * + * @param id 编号 + */ + void deleteReportTemplate(Long id); + + /** + * 批量删除评估报告模板 + * + * @param ids 编号列表 + */ + void deleteReportTemplateListByIds(List ids); + + /** + * 获得评估报告模板详情 + * + * @param id 编号 + * @return 评估报告模板详情 + */ + ReportTemplateDO getReportTemplate(Long id); + + /** + * 获得评估报告模板分页(包含罪犯信息) + * + * @param pageReqVO 分页查询 + * @return 评估报告模板分页 + */ + PageResult getReportTemplatePage(ReportTemplatePageReqVO pageReqVO); + + /** + * 复制评估报告模板 + * + * @param id 模板ID + * @return 新模板ID + */ + Long copyReportTemplate(Long id); + + /** + * 更新模板状态 + * + * @param id 模板ID + * @param status 状态 + */ + void updateReportTemplateStatus(Long id, Integer status); + + /** + * 设为默认模板 + * + * @param id 模板ID + */ + void setReportTemplateDefault(Long id); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/reporttemplate/impl/ReportTemplateServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/reporttemplate/impl/ReportTemplateServiceImpl.java new file mode 100644 index 0000000000..8cf44473a6 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/reporttemplate/impl/ReportTemplateServiceImpl.java @@ -0,0 +1,142 @@ +package cn.iocoder.yudao.module.prison.service.reporttemplate.impl; + +import cn.iocoder.yudao.module.prison.service.reporttemplate.ReportTemplateService; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.prison.controller.admin.reporttemplate.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.reporttemplate.ReportTemplateDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.prison.dal.mysql.reporttemplate.ReportTemplateMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; + +/** + * 评估报告模板 Service 实现类 + * + * @author xlcp + */ +@Service +@Validated +public class ReportTemplateServiceImpl implements ReportTemplateService { + + @Resource + private ReportTemplateMapper reportTemplateMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createReportTemplate(ReportTemplateSaveReqVO createReqVO) { + // 插入 + ReportTemplateDO reportTemplate = BeanUtils.toBean(createReqVO, ReportTemplateDO.class); + reportTemplate.setVersion(1); + reportTemplateMapper.insert(reportTemplate); + // 返回 + return reportTemplate.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateReportTemplate(ReportTemplateSaveReqVO updateReqVO) { + // 校验存在 + validateReportTemplateExists(updateReqVO.getId()); + // 更新 + ReportTemplateDO updateObj = BeanUtils.toBean(updateReqVO, ReportTemplateDO.class); + reportTemplateMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteReportTemplate(Long id) { + // 校验存在 + validateReportTemplateExists(id); + // 删除 + reportTemplateMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteReportTemplateListByIds(List ids) { + // 删除 + reportTemplateMapper.deleteByIds(ids); + } + + private ReportTemplateDO validateReportTemplateExists(Long id) { + ReportTemplateDO template = reportTemplateMapper.selectById(id); + if (template == null) { + throw exception(PRISON_REPORT_TEMPLATE_NOT_EXISTS); + } + return template; + } + + @Override + public ReportTemplateDO getReportTemplate(Long id) { + return reportTemplateMapper.selectById(id); + } + + @Override + public PageResult getReportTemplatePage(ReportTemplatePageReqVO pageReqVO) { + return reportTemplateMapper.selectPage(pageReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Long copyReportTemplate(Long id) { + // 校验原模板存在 + ReportTemplateDO original = validateReportTemplateExists(id); + + // 复制新模板 + ReportTemplateDO copy = new ReportTemplateDO(); + copy.setName(original.getName() + "_副本"); + copy.setType(original.getType()); + copy.setTitleFormat(original.getTitleFormat()); + copy.setDimensions(original.getDimensions()); + copy.setAiPromptConfig(original.getAiPromptConfig()); + copy.setStyleConfig(original.getStyleConfig()); + copy.setStatus(0); // 复制后默认停用 + copy.setIsDefault(false); + copy.setVersion(1); + copy.setRemark("复制自模板:" + original.getName()); + + reportTemplateMapper.insert(copy); + return copy.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateReportTemplateStatus(Long id, Integer status) { + // 校验模板存在 + validateReportTemplateExists(id); + // 更新状态 + ReportTemplateDO updateObj = new ReportTemplateDO(); + updateObj.setId(id); + updateObj.setStatus(status); + reportTemplateMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void setReportTemplateDefault(Long id) { + // 校验模板存在 + ReportTemplateDO template = validateReportTemplateExists(id); + + // 取消其他默认模板 + ReportTemplateDO clearDefault = new ReportTemplateDO(); + clearDefault.setIsDefault(false); + reportTemplateMapper.update(clearDefault, + new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(ReportTemplateDO::getIsDefault, true)); + + // 设置当前模板为默认 + ReportTemplateDO updateObj = new ReportTemplateDO(); + updateObj.setId(id); + updateObj.setIsDefault(true); + reportTemplateMapper.updateById(updateObj); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/risk/RiskService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/risk/RiskService.java new file mode 100644 index 0000000000..696385a046 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/risk/RiskService.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.prison.service.risk; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.prison.controller.admin.risk.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.risk.RiskDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 风险评估 Service 接口 + * + * @author xlcp + */ +public interface RiskService { + + /** + * 创建风险评估 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createRisk(@Valid RiskSaveReqVO createReqVO); + + /** + * 更新风险评估 + * + * @param updateReqVO 更新信息 + */ + void updateRisk(@Valid RiskSaveReqVO updateReqVO); + + /** + * 删除风险评估 + * + * @param id 编号 + */ + void deleteRisk(Long id); + + /** + * 批量删除风险评估 + * + * @param ids 编号 + */ + void deleteRiskListByIds(List ids); + + /** + * 获得风险评估 + * + * @param id 编号 + * @return 风险评估 + */ + RiskDO getRisk(Long id); + + /** + * 获得风险评估分页 + * + * @param pageReqVO 分页查询 + * @return 风险评估分页 + */ + PageResult getRiskPage(RiskPageReqVO pageReqVO); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/risk/impl/RiskServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/risk/impl/RiskServiceImpl.java new file mode 100644 index 0000000000..3d7c25c4d8 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/risk/impl/RiskServiceImpl.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.prison.service.risk.impl; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.prison.controller.admin.risk.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.risk.RiskDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.prison.dal.mysql.risk.RiskMapper; +import cn.iocoder.yudao.module.prison.service.risk.RiskService; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; + +/** + * 风险评估 Service 实现类 + * + * @author xlcp + */ +@Service +@Validated +public class RiskServiceImpl implements RiskService { + + @Resource + private RiskMapper riskMapper; + + @Override + public Long createRisk(RiskSaveReqVO createReqVO) { + // 插入 + RiskDO risk = BeanUtils.toBean(createReqVO, RiskDO.class); + riskMapper.insert(risk); + // 返回 + return risk.getId(); + } + + @Override + public void updateRisk(RiskSaveReqVO updateReqVO) { + // 校验存在 + validateRiskExists(updateReqVO.getId()); + // 更新 + RiskDO updateObj = BeanUtils.toBean(updateReqVO, RiskDO.class); + riskMapper.updateById(updateObj); + } + + @Override + public void deleteRisk(Long id) { + // 校验存在 + validateRiskExists(id); + // 删除 + riskMapper.deleteById(id); + } + + @Override + public void deleteRiskListByIds(List ids) { + // 删除 + riskMapper.deleteByIds(ids); + } + + private void validateRiskExists(Long id) { + if (riskMapper.selectById(id) == null) { + throw exception(PRISON_RISK_NOT_EXISTS); + } + } + + @Override + public RiskDO getRisk(Long id) { + return riskMapper.selectById(id); + } + + @Override + public PageResult getRiskPage(RiskPageReqVO pageReqVO) { + return riskMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/riskassessment/RiskAssessmentService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/riskassessment/RiskAssessmentService.java index b2aaa0590f..854c1ae295 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/riskassessment/RiskAssessmentService.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/riskassessment/RiskAssessmentService.java @@ -49,7 +49,7 @@ public interface RiskAssessmentService { * @param id 编号 * @return 危险评估 */ - RiskAssessmentDO getRiskAssessment(Long id); + RiskAssessmentRespVO getRiskAssessment(Long id); /** * 获得危险评估分页 @@ -57,6 +57,6 @@ public interface RiskAssessmentService { * @param pageReqVO 分页查询 * @return 危险评估分页 */ - PageResult getRiskAssessmentPage(RiskAssessmentPageReqVO pageReqVO); + PageResult getRiskAssessmentPage(RiskAssessmentPageReqVO pageReqVO); } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/riskassessment/RiskAssessmentServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/riskassessment/RiskAssessmentServiceImpl.java index bf7a313b1d..a5d3dc0b39 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/riskassessment/RiskAssessmentServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/riskassessment/RiskAssessmentServiceImpl.java @@ -1,11 +1,13 @@ package cn.iocoder.yudao.module.prison.service.riskassessment; import cn.hutool.core.collection.CollUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import cn.iocoder.yudao.module.prison.controller.admin.riskassessment.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.riskassessment.RiskAssessmentDO; @@ -27,15 +29,42 @@ import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; */ @Service @Validated +@Slf4j public class RiskAssessmentServiceImpl implements RiskAssessmentService { @Resource private RiskAssessmentMapper riskAssessmentMapper; @Override + @Transactional(rollbackFor = Exception.class) public Long createRiskAssessment(RiskAssessmentSaveReqVO createReqVO) { + // 自动计算综合得分 + BigDecimal totalScore = calculateTotalScore( + createReqVO.getViolenceScore(), + createReqVO.getEscapeScore(), + createReqVO.getSuicideScore() + ); + log.info("=== RiskAssessment Debug === violenceScore={}, escapeScore={}, suicideScore={}, totalScore={}", + createReqVO.getViolenceScore(), createReqVO.getEscapeScore(), createReqVO.getSuicideScore(), totalScore); + // 插入 - RiskAssessmentDO riskAssessment = BeanUtils.toBean(createReqVO, RiskAssessmentDO.class); + RiskAssessmentDO riskAssessment = new RiskAssessmentDO(); + riskAssessment.setPrisonerId(createReqVO.getPrisonerId()); + riskAssessment.setPrisonerNo(createReqVO.getPrisonerNo()); + riskAssessment.setAssessmentType(createReqVO.getAssessmentType()); + riskAssessment.setAssessmentDate(createReqVO.getAssessmentDate()); + riskAssessment.setViolenceScore(createReqVO.getViolenceScore()); + riskAssessment.setEscapeScore(createReqVO.getEscapeScore()); + riskAssessment.setSuicideScore(createReqVO.getSuicideScore()); + riskAssessment.setTotalScore(totalScore); + riskAssessment.setRiskLevel(createReqVO.getRiskLevel()); + riskAssessment.setRiskFactors(createReqVO.getRiskFactors()); + riskAssessment.setSuggestions(createReqVO.getSuggestions()); + riskAssessment.setAssessorId(createReqVO.getAssessorId()); + riskAssessment.setAssessorName(createReqVO.getAssessorName()); + riskAssessment.setNextAssessmentDate(createReqVO.getNextAssessmentDate()); + riskAssessment.setStatus(createReqVO.getStatus()); + riskAssessment.setRemark(createReqVO.getRemark()); riskAssessmentMapper.insert(riskAssessment); // 返回 @@ -43,15 +72,42 @@ public class RiskAssessmentServiceImpl implements RiskAssessmentService { } @Override + @Transactional(rollbackFor = Exception.class) public void updateRiskAssessment(RiskAssessmentSaveReqVO updateReqVO) { // 校验存在 validateRiskAssessmentExists(updateReqVO.getId()); + + // 自动计算综合得分 + BigDecimal totalScore = calculateTotalScore( + updateReqVO.getViolenceScore(), + updateReqVO.getEscapeScore(), + updateReqVO.getSuicideScore() + ); + // 更新 - RiskAssessmentDO updateObj = BeanUtils.toBean(updateReqVO, RiskAssessmentDO.class); + RiskAssessmentDO updateObj = new RiskAssessmentDO(); + updateObj.setId(updateReqVO.getId()); + updateObj.setPrisonerId(updateReqVO.getPrisonerId()); + updateObj.setPrisonerNo(updateReqVO.getPrisonerNo()); + updateObj.setAssessmentType(updateReqVO.getAssessmentType()); + updateObj.setAssessmentDate(updateReqVO.getAssessmentDate()); + updateObj.setViolenceScore(updateReqVO.getViolenceScore()); + updateObj.setEscapeScore(updateReqVO.getEscapeScore()); + updateObj.setSuicideScore(updateReqVO.getSuicideScore()); + updateObj.setTotalScore(totalScore); + updateObj.setRiskLevel(updateReqVO.getRiskLevel()); + updateObj.setRiskFactors(updateReqVO.getRiskFactors()); + updateObj.setSuggestions(updateReqVO.getSuggestions()); + updateObj.setAssessorId(updateReqVO.getAssessorId()); + updateObj.setAssessorName(updateReqVO.getAssessorName()); + updateObj.setNextAssessmentDate(updateReqVO.getNextAssessmentDate()); + updateObj.setStatus(updateReqVO.getStatus()); + updateObj.setRemark(updateReqVO.getRemark()); riskAssessmentMapper.updateById(updateObj); } @Override + @Transactional(rollbackFor = Exception.class) public void deleteRiskAssessment(Long id) { // 校验存在 validateRiskAssessmentExists(id); @@ -60,10 +116,29 @@ public class RiskAssessmentServiceImpl implements RiskAssessmentService { } @Override - public void deleteRiskAssessmentListByIds(List ids) { + @Transactional(rollbackFor = Exception.class) + public void deleteRiskAssessmentListByIds(List ids) { // 删除 riskAssessmentMapper.deleteByIds(ids); + } + + /** + * 计算综合得分 + * 综合得分 = 暴力倾向得分 + 脱逃倾向得分 + 自杀倾向得分 + */ + private BigDecimal calculateTotalScore(BigDecimal violenceScore, BigDecimal escapeScore, BigDecimal suicideScore) { + BigDecimal total = BigDecimal.ZERO; + if (violenceScore != null) { + total = total.add(violenceScore); } + if (escapeScore != null) { + total = total.add(escapeScore); + } + if (suicideScore != null) { + total = total.add(suicideScore); + } + return total; + } private void validateRiskAssessmentExists(Long id) { @@ -73,13 +148,14 @@ public class RiskAssessmentServiceImpl implements RiskAssessmentService { } @Override - public RiskAssessmentDO getRiskAssessment(Long id) { - return riskAssessmentMapper.selectById(id); + public RiskAssessmentRespVO getRiskAssessment(Long id) { + return riskAssessmentMapper.selectAssessmentDetail(id); } @Override - public PageResult getRiskAssessmentPage(RiskAssessmentPageReqVO pageReqVO) { - return riskAssessmentMapper.selectPage(pageReqVO); + public PageResult getRiskAssessmentPage(RiskAssessmentPageReqVO pageReqVO) { + List list = riskAssessmentMapper.selectAssessmentDetailPage(pageReqVO); + return new PageResult<>(list, (long) list.size()); } } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/score/ScoreService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/score/ScoreService.java index f62e1bbef2..d8c691ad23 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/score/ScoreService.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/score/ScoreService.java @@ -44,19 +44,19 @@ public interface ScoreService { void deleteScoreListByIds(List ids); /** - * 获得计分考核 + * 获得计分考核详情(包含罪犯信息) * * @param id 编号 - * @return 计分考核 + * @return 计分考核详情 */ - ScoreDO getScore(Long id); + ScoreRespVO getScore(Long id); /** - * 获得计分考核分页 + * 获得计分考核分页(包含罪犯信息) * * @param pageReqVO 分页查询 * @return 计分考核分页 */ - PageResult getScorePage(ScorePageReqVO pageReqVO); + PageResult getScorePage(ScorePageReqVO pageReqVO); } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/score/ScoreServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/score/ScoreServiceImpl.java index 9b8362cd7f..a743e24bdf 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/score/ScoreServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/score/ScoreServiceImpl.java @@ -1,23 +1,18 @@ package cn.iocoder.yudao.module.prison.service.score; -import cn.hutool.core.collection.CollUtil; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; import java.util.*; import cn.iocoder.yudao.module.prison.controller.admin.score.vo.*; import cn.iocoder.yudao.module.prison.dal.dataobject.score.ScoreDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.prison.dal.mysql.score.ScoreMapper; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList; import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; /** @@ -73,13 +68,14 @@ public class ScoreServiceImpl implements ScoreService { } @Override - public ScoreDO getScore(Long id) { - return scoreMapper.selectById(id); + public ScoreRespVO getScore(Long id) { + return scoreMapper.selectScoreDetail(id); } @Override - public PageResult getScorePage(ScorePageReqVO pageReqVO) { - return scoreMapper.selectPage(pageReqVO); + public PageResult getScorePage(ScorePageReqVO pageReqVO) { + List list = scoreMapper.selectScoreDetailPage(pageReqVO); + return new PageResult<>(list, (long) list.size()); } } \ No newline at end of file diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/situation/SituationService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/situation/SituationService.java new file mode 100644 index 0000000000..bc21a3f5c6 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/situation/SituationService.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.prison.service.situation; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.prison.controller.admin.situation.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.situation.SituationDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 狱情收集 Service 接口 + * + * @author xlcp + */ +public interface SituationService { + + /** + * 创建狱情收集 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSituation(@Valid SituationSaveReqVO createReqVO); + + /** + * 更新狱情收集 + * + * @param updateReqVO 更新信息 + */ + void updateSituation(@Valid SituationSaveReqVO updateReqVO); + + /** + * 删除狱情收集 + * + * @param id 编号 + */ + void deleteSituation(Long id); + + /** + * 批量删除狱情收集 + * + * @param ids 编号 + */ + void deleteSituationListByIds(List ids); + + /** + * 获得狱情收集 + * + * @param id 编号 + * @return 狱情收集 + */ + SituationDO getSituation(Long id); + + /** + * 获得狱情收集分页 + * + * @param pageReqVO 分页查询 + * @return 狱情收集分页 + */ + PageResult getSituationPage(SituationPageReqVO pageReqVO); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/situation/impl/SituationServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/situation/impl/SituationServiceImpl.java new file mode 100644 index 0000000000..6b74dec3c1 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/situation/impl/SituationServiceImpl.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.prison.service.situation.impl; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.prison.controller.admin.situation.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.situation.SituationDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.prison.dal.mysql.situation.SituationMapper; +import cn.iocoder.yudao.module.prison.service.situation.SituationService; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; + +/** + * 狱情收集 Service 实现类 + * + * @author xlcp + */ +@Service +@Validated +public class SituationServiceImpl implements SituationService { + + @Resource + private SituationMapper situationMapper; + + @Override + public Long createSituation(SituationSaveReqVO createReqVO) { + // 插入 + SituationDO situation = BeanUtils.toBean(createReqVO, SituationDO.class); + situationMapper.insert(situation); + // 返回 + return situation.getId(); + } + + @Override + public void updateSituation(SituationSaveReqVO updateReqVO) { + // 校验存在 + validateSituationExists(updateReqVO.getId()); + // 更新 + SituationDO updateObj = BeanUtils.toBean(updateReqVO, SituationDO.class); + situationMapper.updateById(updateObj); + } + + @Override + public void deleteSituation(Long id) { + // 校验存在 + validateSituationExists(id); + // 删除 + situationMapper.deleteById(id); + } + + @Override + public void deleteSituationListByIds(List ids) { + // 删除 + situationMapper.deleteByIds(ids); + } + + private void validateSituationExists(Long id) { + if (situationMapper.selectById(id) == null) { + throw exception(PRISON_SITUATION_NOT_EXISTS); + } + } + + @Override + public SituationDO getSituation(Long id) { + return situationMapper.selectById(id); + } + + @Override + public PageResult getSituationPage(SituationPageReqVO pageReqVO) { + return situationMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/warning/WarningService.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/warning/WarningService.java new file mode 100644 index 0000000000..11a79a624d --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/warning/WarningService.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.prison.service.warning; + +import java.util.*; +import jakarta.validation.*; +import cn.iocoder.yudao.module.prison.controller.admin.warning.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.warning.WarningDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 预警信息 Service 接口 + * + * @author xlcp + */ +public interface WarningService { + + /** + * 创建预警信息 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createWarning(@Valid WarningSaveReqVO createReqVO); + + /** + * 更新预警信息 + * + * @param updateReqVO 更新信息 + */ + void updateWarning(@Valid WarningSaveReqVO updateReqVO); + + /** + * 删除预警信息 + * + * @param id 编号 + */ + void deleteWarning(Long id); + + /** + * 批量删除预警信息 + * + * @param ids 编号 + */ + void deleteWarningListByIds(List ids); + + /** + * 获得预警信息 + * + * @param id 编号 + * @return 预警信息 + */ + WarningDO getWarning(Long id); + + /** + * 获得预警信息分页 + * + * @param pageReqVO 分页查询 + * @return 预警信息分页 + */ + PageResult getWarningPage(WarningPageReqVO pageReqVO); + +} diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/warning/impl/WarningServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/warning/impl/WarningServiceImpl.java new file mode 100644 index 0000000000..567daa6c92 --- /dev/null +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/warning/impl/WarningServiceImpl.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.prison.service.warning.impl; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.prison.controller.admin.warning.vo.*; +import cn.iocoder.yudao.module.prison.dal.dataobject.warning.WarningDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.prison.dal.mysql.warning.WarningMapper; +import cn.iocoder.yudao.module.prison.service.warning.WarningService; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; + +/** + * 预警信息 Service 实现类 + * + * @author xlcp + */ +@Service +@Validated +public class WarningServiceImpl implements WarningService { + + @Resource + private WarningMapper warningMapper; + + @Override + public Long createWarning(WarningSaveReqVO createReqVO) { + // 插入 + WarningDO warning = BeanUtils.toBean(createReqVO, WarningDO.class); + warningMapper.insert(warning); + // 返回 + return warning.getId(); + } + + @Override + public void updateWarning(WarningSaveReqVO updateReqVO) { + // 校验存在 + validateWarningExists(updateReqVO.getId()); + // 更新 + WarningDO updateObj = BeanUtils.toBean(updateReqVO, WarningDO.class); + warningMapper.updateById(updateObj); + } + + @Override + public void deleteWarning(Long id) { + // 校验存在 + validateWarningExists(id); + // 删除 + warningMapper.deleteById(id); + } + + @Override + public void deleteWarningListByIds(List ids) { + // 删除 + warningMapper.deleteByIds(ids); + } + + private void validateWarningExists(Long id) { + if (warningMapper.selectById(id) == null) { + throw exception(PRISON_WARNING_NOT_EXISTS); + } + } + + @Override + public WarningDO getWarning(Long id) { + return warningMapper.selectById(id); + } + + @Override + public PageResult getWarningPage(WarningPageReqVO pageReqVO) { + return warningMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-prison/src/main/resources/mapper/ConsumptionMapper.xml b/yudao-module-prison/src/main/resources/mapper/ConsumptionMapper.xml new file mode 100644 index 0000000000..123e38c627 --- /dev/null +++ b/yudao-module-prison/src/main/resources/mapper/ConsumptionMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yudao-module-prison/src/main/resources/mapper/RiskAssessmentMapper.xml b/yudao-module-prison/src/main/resources/mapper/RiskAssessmentMapper.xml new file mode 100644 index 0000000000..e7ca0dc064 --- /dev/null +++ b/yudao-module-prison/src/main/resources/mapper/RiskAssessmentMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yudao-module-prison/src/main/resources/mapper/ScoreMapper.xml b/yudao-module-prison/src/main/resources/mapper/ScoreMapper.xml new file mode 100644 index 0000000000..c540cb76bc --- /dev/null +++ b/yudao-module-prison/src/main/resources/mapper/ScoreMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yudao-module-prison/src/main/resources/sql/evaluation_report.sql b/yudao-module-prison/src/main/resources/sql/evaluation_report.sql new file mode 100644 index 0000000000..145562c11e --- /dev/null +++ b/yudao-module-prison/src/main/resources/sql/evaluation_report.sql @@ -0,0 +1,244 @@ +-- ============================================================ +-- 评估报告模块数据库脚本 +-- 模块名称:评估报告 (Evaluation Report) +-- 创建日期:2026-01-16 +-- ============================================================ + +-- ============================================================ +-- 1. 评估报告模板表 +-- ============================================================ +DROP TABLE IF EXISTS `prison_evaluation_template`; +CREATE TABLE `prison_evaluation_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '模板ID', + `name` varchar(100) NOT NULL COMMENT '模板名称', + `type` tinyint NOT NULL COMMENT '模板类型:1-入监综合评估 2-定期考核报告 3-出监评估报告 4-减刑假释建议报告 5-专项评估报告', + `title_format` varchar(200) DEFAULT NULL COMMENT '报告标题格式', + `description` varchar(500) DEFAULT NULL COMMENT '模板描述', + `ai_prompt` text DEFAULT NULL COMMENT 'AI提示词配置', + `style_config` text DEFAULT NULL COMMENT '样式配置JSON', + `is_default` tinyint(1) DEFAULT 0 COMMENT '是否默认模板:0-否 1-是', + `status` tinyint(1) DEFAULT 1 COMMENT '状态:0-停用 1-启用', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_evaluation_template_type` (`type`), + KEY `idx_prison_evaluation_template_status` (`status`) +) ENGINE=InnoDB COMMENT='评估报告模板表'; + +-- ============================================================ +-- 2. 评估维度配置表 +-- ============================================================ +DROP TABLE IF EXISTS `prison_evaluation_dimension`; +CREATE TABLE `prison_evaluation_dimension` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '维度ID', + `template_id` bigint NOT NULL COMMENT '所属模板ID', + `name` varchar(100) NOT NULL COMMENT '维度名称', + `type` tinyint NOT NULL COMMENT '维度类型:1-基本信息 2-犯罪情况 3-服刑表现 4-心理评估 5-风险评估 6-消费行为 7-劳动表现 8-家庭帮教 9-综合分析 10-管教意见', + `ai_prompt` text DEFAULT NULL COMMENT 'AI提示词', + `data_sources` varchar(500) DEFAULT NULL COMMENT '数据源绑定,多个用逗号分隔:prisoner-罪犯档案 consumption-消费记录 score-计分考核 questionnaire-问卷测评 risk-风险评估 violation-违规记录 reward-奖励记录 visit-会见记录 labor-劳动数据 family-家庭帮教 psychology-心理测评', + `output_format` tinyint DEFAULT 1 COMMENT '输出格式:1-文本 2-段落 3-列表', + `ai_enabled` tinyint(1) DEFAULT 0 COMMENT '是否AI生成:0-否 1-是', + `editor_type` tinyint DEFAULT 1 COMMENT '编辑器类型:1-文本框 2-富文本 3-下拉选择', + `sort` int DEFAULT 0 COMMENT '排序', + `is_required` tinyint(1) DEFAULT 1 COMMENT '是否必填:0-否 1-是', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_evaluation_dimension_template` (`template_id`) +) ENGINE=InnoDB COMMENT='评估维度配置表'; + +-- ============================================================ +-- 3. 评估报告表 +-- ============================================================ +DROP TABLE IF EXISTS `prison_evaluation_report`; +CREATE TABLE `prison_evaluation_report` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '报告ID', + `report_no` varchar(50) NOT NULL COMMENT '报告编号', + `prisoner_id` bigint NOT NULL COMMENT '罪犯ID', + `prisoner_name` varchar(50) DEFAULT NULL COMMENT '罪犯姓名', + `prisoner_no` varchar(50) DEFAULT NULL COMMENT '罪犯编号', + `template_id` bigint NOT NULL COMMENT '模板ID', + `template_name` varchar(100) DEFAULT NULL COMMENT '模板名称', + `title` varchar(200) DEFAULT NULL COMMENT '报告标题', + `evaluation_date` date DEFAULT NULL COMMENT '评估日期', + `risk_level` tinyint DEFAULT NULL COMMENT '风险等级:1-低风险 2-中风险 3-高风险', + `conclusion` text DEFAULT NULL COMMENT '综合结论', + `suggestion` text DEFAULT NULL COMMENT '改造建议', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1-草稿 2-待审核 3-已通过 4-已退回 5-已归档', + `ai_status` tinyint NOT NULL DEFAULT 0 COMMENT 'AI生成状态:0-未生成 1-生成中 2-生成完成 3-生成失败', + `auditor_id` bigint DEFAULT NULL COMMENT '审核人ID', + `auditor_name` varchar(50) DEFAULT NULL COMMENT '审核人姓名', + `audit_time` datetime DEFAULT NULL COMMENT '审核时间', + `audit_opinion` varchar(500) DEFAULT NULL COMMENT '审核意见', + `report_signature` varchar(500) DEFAULT NULL COMMENT '数字签名', + `report_fingerprint` varchar(64) DEFAULT NULL COMMENT '报告指纹哈希', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_prison_evaluation_report_no` (`report_no`), + KEY `idx_prison_evaluation_report_prisoner` (`prisoner_id`), + KEY `idx_prison_evaluation_report_template` (`template_id`), + KEY `idx_prison_evaluation_report_status` (`status`) +) ENGINE=InnoDB COMMENT='评估报告表'; + +-- ============================================================ +-- 4. 报告维度数据表 +-- ============================================================ +DROP TABLE IF EXISTS `prison_evaluation_dimension_data`; +CREATE TABLE `prison_evaluation_dimension_data` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '数据ID', + `report_id` bigint NOT NULL COMMENT '报告ID', + `dimension_id` bigint NOT NULL COMMENT '维度配置ID', + `dimension_name` varchar(100) DEFAULT NULL COMMENT '维度名称', + `content` text DEFAULT NULL COMMENT '填充内容', + `is_ai_generated` tinyint(1) DEFAULT 0 COMMENT '是否AI生成:0-否 1-是', + `is_modified` tinyint(1) DEFAULT 0 COMMENT '是否人工修改:0-否 1-是', + `modified_by` varchar(50) DEFAULT NULL COMMENT '修改人', + `modified_time` datetime DEFAULT NULL COMMENT '修改时间', + `data_source` varchar(100) DEFAULT NULL COMMENT '数据来源', + `raw_data` text DEFAULT NULL COMMENT '原始数据JSON', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_evaluation_dimension_data_report` (`report_id`) +) ENGINE=InnoDB COMMENT='报告维度数据表'; + +-- ============================================================ +-- 5. 快捷评语库表 +-- ============================================================ +DROP TABLE IF EXISTS `prison_report_comment`; +CREATE TABLE `prison_report_comment` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评语ID', + `content` varchar(500) NOT NULL COMMENT '评语内容', + `type` tinyint NOT NULL COMMENT '评语类型:1-入监评估 2-定期考核 3-出监评估 4-减刑假释 5-专项评估', + `dimension` varchar(50) DEFAULT NULL COMMENT '适用维度', + `usage_count` int DEFAULT 0 COMMENT '使用次数', + `is_builtin` tinyint(1) DEFAULT 0 COMMENT '是否内置:0-否 1-是', + `status` tinyint(1) DEFAULT 1 COMMENT '状态:0-停用 1-启用', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_report_comment_type` (`type`), + KEY `idx_prison_report_comment_dimension` (`dimension`) +) ENGINE=InnoDB COMMENT='快捷评语库表'; + +-- ============================================================ +-- 6. 报告版本历史表 +-- ============================================================ +DROP TABLE IF EXISTS `prison_evaluation_report_version`; +CREATE TABLE `prison_evaluation_report_version` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '版本ID', + `report_id` bigint NOT NULL COMMENT '报告ID', + `version` int NOT NULL COMMENT '版本号', + `content` text DEFAULT NULL COMMENT '版本内容JSON', + `changelog` varchar(500) DEFAULT NULL COMMENT '变更说明', + `created_by` varchar(50) DEFAULT NULL COMMENT '创建人', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_evaluation_report_version_report` (`report_id`) +) ENGINE=InnoDB COMMENT='报告版本历史表'; + +-- ============================================================ +-- 7. AI生成日志表 +-- ============================================================ +DROP TABLE IF EXISTS `prison_evaluation_ai_log`; +CREATE TABLE `prison_evaluation_ai_log` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID', + `report_id` bigint DEFAULT NULL COMMENT '报告ID', + `dimension_id` bigint DEFAULT NULL COMMENT '维度ID', + `prompt` text DEFAULT NULL COMMENT '输入提示词', + `response` text DEFAULT NULL COMMENT 'AI响应内容', + `model` varchar(100) DEFAULT NULL COMMENT '使用的AI模型', + `tokens` int DEFAULT NULL COMMENT '消耗的Token数', + `duration` int DEFAULT NULL COMMENT '生成耗时(ms)', + `status` tinyint DEFAULT 0 COMMENT '状态:0-失败 1-成功', + `error_msg` varchar(500) DEFAULT NULL COMMENT '错误信息', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_evaluation_ai_log_report` (`report_id`) +) ENGINE=InnoDB COMMENT='AI生成日志表'; + +-- ============================================================ +-- 菜单权限配置 +-- ============================================================ + +-- 评估报告管理菜单 +INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`) VALUES +('评估报告', '', 1, 11, 0, 'evaluation-report', 'documentation', 'prison/evaluation-report/index', 0, b'1', b'1', b'1', 'admin', NOW()); + +-- 获取刚插入的父菜单ID +SET @parent_id = LAST_INSERT_ID(); + +-- 子菜单 +INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`) VALUES +('模板管理', '', 2, 1, @parent_id, 'template', 'component', 'prison/evaluation-report/template/index', 0, b'1', b'1', b'1', 'admin', NOW()), +('报告管理', '', 2, 2, @parent_id, 'report', 'documentation', 'prison/evaluation-report/report/index', 0, b'1', b'1', b'1', 'admin', NOW()), +('评语管理', '', 2, 3, @parent_id, 'comment', 'chat-dot-round', 'prison/evaluation-report/comment/index', 0, b'1', b'1', b'1', 'admin', NOW()); + +-- 获取子菜单ID +SET @template_menu_id = (SELECT id FROM system_menu WHERE path = 'template' AND parent_id = @parent_id LIMIT 1); +SET @report_menu_id = (SELECT id FROM system_menu WHERE path = 'report' AND parent_id = @parent_id LIMIT 1); +SET @comment_menu_id = (SELECT id FROM system_menu WHERE path = 'comment' AND parent_id = @parent_id LIMIT 1); + +-- 模板管理权限 +INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`) VALUES +('模板查询', 'prison:evaluation-report:template:query', 3, 1, @template_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('模板创建', 'prison:evaluation-report:template:create', 3, 2, @template_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('模板更新', 'prison:evaluation-report:template:update', 3, 3, @template_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('模板删除', 'prison:evaluation-report:template:delete', 3, 4, @template_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()); + +-- 报告管理权限 +INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`) VALUES +('报告查询', 'prison:evaluation-report:report:query', 3, 1, @report_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('报告创建', 'prison:evaluation-report:report:create', 3, 2, @report_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('报告更新', 'prison:evaluation-report:report:update', 3, 3, @report_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('报告删除', 'prison:evaluation-report:report:delete', 3, 4, @report_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('报告审核', 'prison:evaluation-report:report:audit', 3, 5, @report_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('AI生成', 'prison:evaluation-report:report:ai-generate', 3, 6, @report_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('报告导出', 'prison:evaluation-report:report:export', 3, 7, @report_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()); + +-- 评语管理权限 +INSERT INTO `system_menu` (`name`, `permission`, `type`, `sort`, `parent_id`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`) VALUES +('评语查询', 'prison:evaluation-report:comment:query', 3, 1, @comment_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('评语创建', 'prison:evaluation-report:comment:create', 3, 2, @comment_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('评语更新', 'prison:evaluation-report:comment:update', 3, 3, @comment_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()), +('评语删除', 'prison:evaluation-report:comment:delete', 3, 4, @comment_menu_id, 0, b'1', b'1', b'1', 'admin', NOW()); + +-- ============================================================ +-- 初始化内置评语 +-- ============================================================ +INSERT INTO `prison_report_comment` (`content`, `type`, `dimension`, `usage_count`, `is_builtin`, `status`, `creator`, `create_time`) VALUES +('该犯服刑期间表现良好,遵守监规纪律,积极参加各项教育活动。', 2, '服刑表现', 0, 1, 1, 'system', NOW()), +('该犯改造态度端正,劳动积极主动,各项考核指标均达到要求。', 2, '劳动表现', 0, 1, 1, 'system', NOW()), +('经评估,该犯再犯罪风险较低,适合假释。', 4, '综合评估', 0, 1, 1, 'system', NOW()), +('建议加强对该犯的教育引导,继续保持良好的改造势头。', 5, '改造建议', 0, 1, 1, 'system', NOW()), +('该犯入监以来情绪稳定,能够积极适应监区生活。', 1, '心理状态', 0, 1, 1, 'system', NOW()), +('该犯家庭关系和睦,家属帮教积极,改造信心充足。', 3, '家庭帮教', 0, 1, 1, 'system', NOW()); + +SELECT '评估报告模块数据库脚本执行完成!' AS RESULT; diff --git a/yudao-module-prison/src/main/resources/sql/prison_module.sql b/yudao-module-prison/src/main/resources/sql/prison_module.sql index b6e515d1f6..f3f823ebdb 100644 --- a/yudao-module-prison/src/main/resources/sql/prison_module.sql +++ b/yudao-module-prison/src/main/resources/sql/prison_module.sql @@ -292,24 +292,24 @@ VALUES ('问卷模板删除', 'prison:questionnaire:delete', 3, 4, @questionnair INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) VALUES ('问卷模板导出', 'prison:questionnaire:export', 3, 5, @questionnaireParentId, '', '', '', 0); --- 5. 问卷问题管理菜单 -INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name) -VALUES ('问卷问题管理', '', 2, 5, 5047, 'question', '', 'prison/question/index', 0, 'Question'); -SELECT @questionParentId := LAST_INSERT_ID(); -INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('问卷问题查询', 'prison:question:query', 3, 1, @questionParentId, '', '', '', 0); -INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('问卷问题创建', 'prison:question:create', 3, 2, @questionParentId, '', '', '', 0); -INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('问卷问题更新', 'prison:question:update', 3, 3, @questionParentId, '', '', '', 0); -INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('问卷问题删除', 'prison:question:delete', 3, 4, @questionParentId, '', '', '', 0); -INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('问卷问题导出', 'prison:question:export', 3, 5, @questionParentId, '', '', '', 0); +-- 5. 问卷问题管理菜单 (已移除独立页面,问题管理集成在问卷模板页面内) +-- INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name) +-- VALUES ('问卷问题管理', '', 2, 5, 5047, 'question', '', 'prison/question/index', 0, 'Question'); +-- SELECT @questionParentId := LAST_INSERT_ID(); +-- INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +-- VALUES ('问卷问题查询', 'prison:question:query', 3, 1, @questionParentId, '', '', '', 0); +-- INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +-- VALUES ('问卷问题创建', 'prison:question:create', 3, 2, @questionParentId, '', '', '', 0); +-- INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +-- VALUES ('问卷问题更新', 'prison:question:update', 3, 3, @questionParentId, '', '', '', 0); +-- INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +-- VALUES ('问卷问题删除', 'prison:question:delete', 3, 4, @questionParentId, '', '', '', 0); +-- INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +-- VALUES ('问卷问题导出', 'prison:question:export', 3, 5, @questionParentId, '', '', '', 0); --- 6. 问卷答题记录管理菜单 +-- 5. 问卷答题记录管理菜单 INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name) -VALUES ('问卷答题记录管理', '', 2, 6, 5047, 'questionnaire-record', '', 'prison/questionnairerecord/index', 0, 'QuestionnaireRecord'); +VALUES ('问卷答题记录管理', '', 2, 5, 5047, 'questionnaire-record', '', 'prison/questionnairerecord/index', 0, 'QuestionnaireRecord'); SELECT @recordParentId := LAST_INSERT_ID(); INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) VALUES ('问卷答题记录查询', 'prison:questionnaire-record:query', 3, 1, @recordParentId, '', '', '', 0); @@ -322,9 +322,9 @@ VALUES ('问卷答题记录删除', 'prison:questionnaire-record:delete', 3, 4, INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) VALUES ('问卷答题记录导出', 'prison:questionnaire-record:export', 3, 5, @recordParentId, '', '', '', 0); --- 7. 危险评估管理菜单 +-- 6. 危险评估管理菜单 INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name) -VALUES ('危险评估管理', '', 2, 7, 5047, 'risk-assessment', '', 'prison/riskassessment/index', 0, 'RiskAssessment'); +VALUES ('危险评估管理', '', 2, 6, 5047, 'risk-assessment', '', 'prison/riskassessment/index', 0, 'RiskAssessment'); SELECT @riskParentId := LAST_INSERT_ID(); INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) VALUES ('危险评估查询', 'prison:risk-assessment:query', 3, 1, @riskParentId, '', '', '', 0); @@ -352,8 +352,23 @@ VALUES ('计分考核删除', 'prison:score:delete', 3, 4, @scoreParentId, '', ' INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) VALUES ('计分考核导出', 'prison:score:export', 3, 5, @scoreParentId, '', '', '', 0); +-- 9. 狱情收集管理菜单 +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name) +VALUES ('狱情收集管理', '', 2, 9, 5047, 'situation', '', 'prison/situation/index', 0, 'Situation'); +SELECT @situationParentId := LAST_INSERT_ID(); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集查询', 'prison:situation:query', 3, 1, @situationParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集创建', 'prison:situation:create', 3, 2, @situationParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集更新', 'prison:situation:update', 3, 3, @situationParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集删除', 'prison:situation:delete', 3, 4, @situationParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集导出', 'prison:situation:export', 3, 5, @situationParentId, '', '', '', 0); + -- ===================================================== --- 9. 数据结构迁移 SQL (2026-01-14) +-- 10. 数据结构迁移 SQL (2026-01-14) -- ===================================================== -- 移除 prison_prisoner 表中的 sub_area_id 字段 -- 执行此迁移前请备份数据库 @@ -367,3 +382,213 @@ INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ( INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES ('prison_cell_status', 1, '启用', '1', 'success', '', 0, 'admin', NOW()), ('prison_cell_status', 2, '禁用', '2', 'danger', '', 0, 'admin', NOW()); + +-- ===================================================== +-- 11. 狱情收集表 (prison_situation) - 新增 2026-01-16 +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_situation` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '狱情ID', + `title` varchar(200) NOT NULL COMMENT '标题', + `content` text COMMENT '详情内容', + `category` tinyint NOT NULL DEFAULT 1 COMMENT '分类:1-监管安全 2-教育改造 3-生活卫生 4-生产安全 5-狱内案件 6-其他', + `level` tinyint NOT NULL DEFAULT 1 COMMENT '等级:1-一般 2-重要 3-紧急', + `source` tinyint NOT NULL DEFAULT 1 COMMENT '来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-其他', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1-待处理 2-处理中 3-已处理', + `area_id` bigint DEFAULT NULL COMMENT '关联监区ID', + `cell_id` bigint DEFAULT NULL COMMENT '关联监室ID', + `reporter` varchar(50) DEFAULT NULL COMMENT '报告人', + `handler` varchar(50) DEFAULT NULL COMMENT '处理人', + `handle_time` datetime DEFAULT NULL COMMENT '处理时间', + `handle_result` text COMMENT '处理结果', + `occur_time` datetime DEFAULT NULL COMMENT '发生时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_situation_status` (`status`), + KEY `idx_prison_situation_category` (`category`), + KEY `idx_prison_situation_level` (`level`), + KEY `idx_prison_situation_area_id` (`area_id`), + KEY `idx_prison_situation_cell_id` (`cell_id`), + KEY `idx_prison_situation_occur_time` (`occur_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='狱情收集表'; + +-- ===================================================== +-- 12. 预警管理表 (prison_warning) - 新增 2026-01-16 +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_warning` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '预警ID', + `title` varchar(200) NOT NULL COMMENT '预警标题', + `content` text COMMENT '预警内容', + `type` tinyint NOT NULL DEFAULT 1 COMMENT '预警类型:1-安全预警 2-监管预警 3-改造预警 4-生产预警 5-生活卫生预警 6-其他', + `level` tinyint NOT NULL DEFAULT 1 COMMENT '预警等级:1-一般 2-重要 3-紧急 4-严重', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '预警状态:1-待核实 2-已核实 3-已处置 4-已解除', + `source` tinyint NOT NULL DEFAULT 1 COMMENT '预警来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-智能分析 6-其他', + `situation_id` bigint DEFAULT NULL COMMENT '关联狱情ID', + `area_id` bigint DEFAULT NULL COMMENT '关联监区ID', + `cell_id` bigint DEFAULT NULL COMMENT '关联监室ID', + `alert_time` datetime DEFAULT NULL COMMENT '预警时间', + `verify_time` datetime DEFAULT NULL COMMENT '核实时间', + `verifier` varchar(50) DEFAULT NULL COMMENT '核实人', + `verify_result` text COMMENT '核实结果', + `handle_time` datetime DEFAULT NULL COMMENT '处置时间', + `handler` varchar(50) DEFAULT NULL COMMENT '处置人', + `handle_method` varchar(200) DEFAULT NULL COMMENT '处置方式', + `handle_result` text COMMENT '处置结果', + `release_time` datetime DEFAULT NULL COMMENT '解除时间', + `releaser` varchar(50) DEFAULT NULL COMMENT '解除人', + `release_reason` text COMMENT '解除原因', + `occur_time` datetime DEFAULT NULL COMMENT '发生时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_warning_status` (`status`), + KEY `idx_prison_warning_level` (`level`), + KEY `idx_prison_warning_type` (`type`), + KEY `idx_prison_warning_situation_id` (`situation_id`), + KEY `idx_prison_warning_area_id` (`area_id`), + KEY `idx_prison_warning_cell_id` (`cell_id`), + KEY `idx_prison_warning_alert_time` (`alert_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预警管理表'; + +-- ===================================================== +-- 13. 风险评估表 (prison_risk) - 新增 2026-01-16 +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_risk` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评估ID', + `prisoner_id` bigint NOT NULL COMMENT '罪犯ID', + `prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号', + `prisoner_name` varchar(50) DEFAULT NULL COMMENT '罪犯姓名', + `assessment_type` tinyint NOT NULL DEFAULT 1 COMMENT '评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估', + `assessment_date` date NOT NULL COMMENT '评估日期', + `overall_score` decimal(5,2) DEFAULT NULL COMMENT '综合风险得分', + `risk_level` tinyint DEFAULT NULL COMMENT '风险等级:1-低风险 2-中风险 3-高风险 4-极高风险', + `mental_state` varchar(500) DEFAULT NULL COMMENT '精神状态评估', + `escape_risk` varchar(500) DEFAULT NULL COMMENT '脱逃风险评估', + `violence_risk` varchar(500) DEFAULT NULL COMMENT '暴力倾向评估', + `revolt_risk` varchar(500) DEFAULT NULL COMMENT '抗改风险评估', + `self_harm_risk` varchar(500) DEFAULT NULL COMMENT '自杀自伤风险评估', + `recommendation` text COMMENT '评估建议', + `assessor` varchar(50) DEFAULT NULL COMMENT '评估人', + `assess_method` tinyint DEFAULT NULL COMMENT '评估方式:1-问卷评估 2-量表评估 3-综合评估', + `item_scores` text COMMENT '评估项目得分JSON', + `conclusion` text COMMENT '评估结论', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_risk_prisoner_id` (`prisoner_id`), + KEY `idx_prison_risk_prisoner_no` (`prisoner_no`), + KEY `idx_prison_risk_assessment_type` (`assessment_type`), + KEY `idx_prison_risk_assessment_date` (`assessment_date`), + KEY `idx_prison_risk_risk_level` (`risk_level`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='风险评估表'; + +-- ===================================================== +-- 14. 字典数据 SQL (2026-01-16) +-- ===================================================== + +-- 狱情分类字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情分类', 'prison_situation_category', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_situation_category', 1, '监管安全', '1', 'danger', '', 0, 'admin', NOW()), +('prison_situation_category', 2, '教育改造', '2', 'warning', '', 0, 'admin', NOW()), +('prison_situation_category', 3, '生活卫生', '3', 'success', '', 0, 'admin', NOW()), +('prison_situation_category', 4, '生产安全', '4', 'info', '', 0, 'admin', NOW()), +('prison_situation_category', 5, '狱内案件', '5', 'danger', '', 0, 'admin', NOW()), +('prison_situation_category', 6, '其他', '6', '', '', 0, 'admin', NOW()); + +-- 狱情等级字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情等级', 'prison_situation_level', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_situation_level', 1, '一般', '1', 'success', '', 0, 'admin', NOW()), +('prison_situation_level', 2, '重要', '2', 'warning', '', 0, 'admin', NOW()), +('prison_situation_level', 3, '紧急', '3', 'danger', '', 0, 'admin', NOW()); + +-- 狱情来源字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情来源', 'prison_situation_source', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_situation_source', 1, '民警报告', '1', '', '', 0, 'admin', NOW()), +('prison_situation_source', 2, '监控系统', '2', '', '', 0, 'admin', NOW()), +('prison_situation_source', 3, '举报', '3', '', '', 0, 'admin', NOW()), +('prison_situation_source', 4, '罪犯自首', '4', '', '', 0, 'admin', NOW()), +('prison_situation_source', 5, '其他', '5', '', '', 0, 'admin', NOW()); + +-- 狱情状态字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情状态', 'prison_situation_status', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_situation_status', 1, '待处理', '1', 'warning', '', 0, 'admin', NOW()), +('prison_situation_status', 2, '处理中', '2', 'info', '', 0, 'admin', NOW()), +('prison_situation_status', 3, '已处理', '3', 'success', '', 0, 'admin', NOW()); + +-- 预警类型字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警类型', 'prison_warning_type', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_warning_type', 1, '安全预警', '1', 'danger', '', 0, 'admin', NOW()), +('prison_warning_type', 2, '监管预警', '2', 'warning', '', 0, 'admin', NOW()), +('prison_warning_type', 3, '改造预警', '3', 'info', '', 0, 'admin', NOW()), +('prison_warning_type', 4, '生产预警', '4', '', '', 0, 'admin', NOW()), +('prison_warning_type', 5, '生活卫生预警', '5', 'success', '', 0, 'admin', NOW()), +('prison_warning_type', 6, '其他', '6', '', '', 0, 'admin', NOW()); + +-- 预警等级字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警等级', 'prison_warning_level', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_warning_level', 1, '一般', '1', 'success', '', 0, 'admin', NOW()), +('prison_warning_level', 2, '重要', '2', 'warning', '', 0, 'admin', NOW()), +('prison_warning_level', 3, '紧急', '3', 'danger', '', 0, 'admin', NOW()), +('prison_warning_level', 4, '严重', '4', 'danger', '', 0, 'admin', NOW()); + +-- 预警状态字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警状态', 'prison_warning_status', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_warning_status', 1, '待核实', '1', 'warning', '', 0, 'admin', NOW()), +('prison_warning_status', 2, '已核实', '2', 'info', '', 0, 'admin', NOW()), +('prison_warning_status', 3, '已处置', '3', 'success', '', 0, 'admin', NOW()), +('prison_warning_status', 4, '已解除', '4', '', '', 0, 'admin', NOW()); + +-- 预警来源字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警来源', 'prison_warning_source', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_warning_source', 1, '民警报告', '1', '', '', 0, 'admin', NOW()), +('prison_warning_source', 2, '监控系统', '2', '', '', 0, 'admin', NOW()), +('prison_warning_source', 3, '举报', '3', '', '', 0, 'admin', NOW()), +('prison_warning_source', 4, '罪犯自首', '4', '', '', 0, 'admin', NOW()), +('prison_warning_source', 5, '智能分析', '5', '', '', 0, 'admin', NOW()), +('prison_warning_source', 6, '其他', '6', '', '', 0, 'admin', NOW()); + +-- 风险评估类型字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('风险评估类型', 'prison_risk_assessment_type', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_risk_assessment_type', 1, '入监评估', '1', 'info', '', 0, 'admin', NOW()), +('prison_risk_assessment_type', 2, '定期评估', '2', 'success', '', 0, 'admin', NOW()), +('prison_risk_assessment_type', 3, '专项评估', '3', 'warning', '', 0, 'admin', NOW()), +('prison_risk_assessment_type', 4, '出监评估', '4', '', '', 0, 'admin', NOW()); + +-- 风险等级字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('风险等级', 'prison_risk_level', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_risk_level', 1, '低风险', '1', 'success', '', 0, 'admin', NOW()), +('prison_risk_level', 2, '中风险', '2', 'warning', '', 0, 'admin', NOW()), +('prison_risk_level', 3, '高风险', '3', 'danger', '', 0, 'admin', NOW()), +('prison_risk_level', 4, '极高风险', '4', 'danger', '', 0, 'admin', NOW()); + +-- 评估方式字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('评估方式', 'prison_risk_assess_method', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_risk_assess_method', 1, '问卷评估', '1', '', '', 0, 'admin', NOW()), +('prison_risk_assess_method', 2, '量表评估', '2', '', '', 0, 'admin', NOW()), +('prison_risk_assess_method', 3, '综合评估', '3', '', '', 0, 'admin', NOW()); diff --git a/yudao-module-prison/src/main/resources/sql/prison_situation_warning_risk.sql b/yudao-module-prison/src/main/resources/sql/prison_situation_warning_risk.sql new file mode 100644 index 0000000000..f37ae9f02c --- /dev/null +++ b/yudao-module-prison/src/main/resources/sql/prison_situation_warning_risk.sql @@ -0,0 +1,264 @@ +-- ===================================================== +-- XL监狱综合管理平台 - 狱情模块数据库脚本 +-- 生成时间: 2026-01-16 +-- ===================================================== + +-- ===================================================== +-- 9. 狱情收集表 (prison_situation) +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_situation` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '狱情ID', + `title` varchar(200) NOT NULL COMMENT '标题', + `content` text COMMENT '详情内容', + `category` tinyint NOT NULL DEFAULT 1 COMMENT '分类:1-监管安全 2-教育改造 3-生活卫生 4-生产安全 5-狱内案件 6-其他', + `level` tinyint NOT NULL DEFAULT 1 COMMENT '等级:1-一般 2-重要 3-紧急', + `source` tinyint NOT NULL DEFAULT 1 COMMENT '来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-其他', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1-待处理 2-处理中 3-已处理', + `area_id` bigint DEFAULT NULL COMMENT '关联监区ID', + `cell_id` bigint DEFAULT NULL COMMENT '关联监室ID', + `reporter` varchar(50) DEFAULT NULL COMMENT '报告人', + `handler` varchar(50) DEFAULT NULL COMMENT '处理人', + `handle_time` datetime DEFAULT NULL COMMENT '处理时间', + `handle_result` text COMMENT '处理结果', + `occur_time` datetime DEFAULT NULL COMMENT '发生时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_situation_status` (`status`), + KEY `idx_prison_situation_category` (`category`), + KEY `idx_prison_situation_level` (`level`), + KEY `idx_prison_situation_area_id` (`area_id`), + KEY `idx_prison_situation_cell_id` (`cell_id`), + KEY `idx_prison_situation_occur_time` (`occur_time`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='狱情收集表'; + +-- ===================================================== +-- 10. 预警管理表 (prison_warning) +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_warning` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '预警ID', + `title` varchar(200) NOT NULL COMMENT '预警标题', + `content` text COMMENT '预警内容', + `type` tinyint NOT NULL DEFAULT 1 COMMENT '预警类型:1-安全预警 2-监管预警 3-改造预警 4-生产预警 5-生活卫生预警 6-其他', + `level` tinyint NOT NULL DEFAULT 1 COMMENT '预警等级:1-一般 2-重要 3-紧急 4-严重', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '预警状态:1-待核实 2-已核实 3-已处置 4-已解除', + `source` tinyint NOT NULL DEFAULT 1 COMMENT '预警来源:1-民警报告 2-监控系统 3-举报 4-罪犯自首 5-智能分析 6-其他', + `situation_id` bigint DEFAULT NULL COMMENT '关联狱情ID', + `area_id` bigint DEFAULT NULL COMMENT '关联监区ID', + `cell_id` bigint DEFAULT NULL COMMENT '关联监室ID', + `alert_time` datetime DEFAULT NULL COMMENT '预警时间', + `verify_time` datetime DEFAULT NULL COMMENT '核实时间', + `verifier` varchar(50) DEFAULT NULL COMMENT '核实人', + `verify_result` text COMMENT '核实结果', + `handle_time` datetime DEFAULT NULL COMMENT '处置时间', + `handler` varchar(50) DEFAULT NULL COMMENT '处置人', + `handle_method` varchar(200) DEFAULT NULL COMMENT '处置方式', + `handle_result` text COMMENT '处置结果', + `release_time` datetime DEFAULT NULL COMMENT '解除时间', + `releaser` varchar(50) DEFAULT NULL COMMENT '解除人', + `release_reason` text COMMENT '解除原因', + `occur_time` datetime DEFAULT NULL COMMENT '发生时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_warning_status` (`status`), + KEY `idx_prison_warning_level` (`level`), + KEY `idx_prison_warning_type` (`type`), + KEY `idx_prison_warning_situation_id` (`situation_id`), + KEY `idx_prison_warning_area_id` (`area_id`), + KEY `idx_prison_warning_cell_id` (`cell_id`), + KEY `idx_prison_warning_alert_time` (`alert_time`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预警管理表'; + +-- ===================================================== +-- 11. 风险评估表 (prison_risk) +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_risk` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评估ID', + `prisoner_id` bigint NOT NULL COMMENT '罪犯ID', + `prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号', + `prisoner_name` varchar(50) DEFAULT NULL COMMENT '罪犯姓名', + `assessment_type` tinyint NOT NULL DEFAULT 1 COMMENT '评估类型:1-入监评估 2-定期评估 3-专项评估 4-出监评估', + `assessment_date` date NOT NULL COMMENT '评估日期', + `overall_score` decimal(5,2) DEFAULT NULL COMMENT '综合风险得分', + `risk_level` tinyint DEFAULT NULL COMMENT '风险等级:1-低风险 2-中风险 3-高风险 4-极高风险', + `mental_state` varchar(500) DEFAULT NULL COMMENT '精神状态评估', + `escape_risk` varchar(500) DEFAULT NULL COMMENT '脱逃风险评估', + `violence_risk` varchar(500) DEFAULT NULL COMMENT '暴力倾向评估', + `revolt_risk` varchar(500) DEFAULT NULL COMMENT '抗改风险评估', + `self_harm_risk` varchar(500) DEFAULT NULL COMMENT '自杀自伤风险评估', + `recommendation` text COMMENT '评估建议', + `assessor` varchar(50) DEFAULT NULL COMMENT '评估人', + `assess_method` tinyint DEFAULT NULL COMMENT '评估方式:1-问卷评估 2-量表评估 3-综合评估', + `item_scores` text COMMENT '评估项目得分JSON', + `conclusion` text COMMENT '评估结论', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_risk_prisoner_id` (`prisoner_id`), + KEY `idx_prison_risk_prisoner_no` (`prisoner_no`), + KEY `idx_prison_risk_assessment_type` (`assessment_type`), + KEY `idx_prison_risk_assessment_date` (`assessment_date`), + KEY `idx_prison_risk_risk_level` (`risk_level`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='风险评估表'; + +-- ===================================================== +-- 菜单权限 SQL (2026-01-16) +-- 注意: 请将 5047 替换为实际的父菜单ID +-- ===================================================== + +-- 9. 狱情收集管理菜单 +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name) +VALUES ('狱情收集管理', '', 2, 9, 5047, 'situation', '', 'prison/situation/index', 0, 'Situation'); +SELECT @situationParentId := LAST_INSERT_ID(); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集查询', 'prison:situation:query', 3, 1, @situationParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集创建', 'prison:situation:create', 3, 2, @situationParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集更新', 'prison:situation:update', 3, 3, @situationParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集删除', 'prison:situation:delete', 3, 4, @situationParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('狱情收集导出', 'prison:situation:export', 3, 5, @situationParentId, '', '', '', 0); + +-- 10. 预警管理菜单 +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name) +VALUES ('预警管理', '', 2, 10, 5047, 'warning', '', 'prison/warning/index', 0, 'Warning'); +SELECT @warningParentId := LAST_INSERT_ID(); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('预警查询', 'prison:warning:query', 3, 1, @warningParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('预警创建', 'prison:warning:create', 3, 2, @warningParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('预警更新', 'prison:warning:update', 3, 3, @warningParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('预警删除', 'prison:warning:delete', 3, 4, @warningParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('预警导出', 'prison:warning:export', 3, 5, @warningParentId, '', '', '', 0); + +-- 11. 风险评估菜单 +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, component_name) +VALUES ('风险评估', '', 2, 11, 5047, 'risk', '', 'prison/risk/index', 0, 'Risk'); +SELECT @riskParentId := LAST_INSERT_ID(); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('风险评估查询', 'prison:risk:query', 3, 1, @riskParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('风险评估创建', 'prison:risk:create', 3, 2, @riskParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('风险评估更新', 'prison:risk:update', 3, 3, @riskParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('风险评估删除', 'prison:risk:delete', 3, 4, @riskParentId, '', '', '', 0); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status) +VALUES ('风险评估导出', 'prison:risk:export', 3, 5, @riskParentId, '', '', '', 0); + +-- ===================================================== +-- 字典数据 SQL (2026-01-16) +-- ===================================================== + +-- 狱情分类字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情分类', 'prison_situation_category', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_situation_category', 1, '监管安全', '1', 'danger', '', 0, 'admin', NOW()), +('prison_situation_category', 2, '教育改造', '2', 'warning', '', 0, 'admin', NOW()), +('prison_situation_category', 3, '生活卫生', '3', 'success', '', 0, 'admin', NOW()), +('prison_situation_category', 4, '生产安全', '4', 'info', '', 0, 'admin', NOW()), +('prison_situation_category', 5, '狱内案件', '5', 'danger', '', 0, 'admin', NOW()), +('prison_situation_category', 6, '其他', '6', '', '', 0, 'admin', NOW()); + +-- 狱情等级字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情等级', 'prison_situation_level', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_situation_level', 1, '一般', '1', 'success', '', 0, 'admin', NOW()), +('prison_situation_level', 2, '重要', '2', 'warning', '', 0, 'admin', NOW()), +('prison_situation_level', 3, '紧急', '3', 'danger', '', 0, 'admin', NOW()); + +-- 狱情来源字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情来源', 'prison_situation_source', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_situation_source', 1, '民警报告', '1', '', '', 0, 'admin', NOW()), +('prison_situation_source', 2, '监控系统', '2', '', '', 0, 'admin', NOW()), +('prison_situation_source', 3, '举报', '3', '', '', 0, 'admin', NOW()), +('prison_situation_source', 4, '罪犯自首', '4', '', '', 0, 'admin', NOW()), +('prison_situation_source', 5, '其他', '5', '', '', 0, 'admin', NOW()); + +-- 狱情状态字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('狱情状态', 'prison_situation_status', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_situation_status', 1, '待处理', '1', 'warning', '', 0, 'admin', NOW()), +('prison_situation_status', 2, '处理中', '2', 'info', '', 0, 'admin', NOW()), +('prison_situation_status', 3, '已处理', '3', 'success', '', 0, 'admin', NOW()); + +-- 预警类型字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警类型', 'prison_warning_type', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_warning_type', 1, '安全预警', '1', 'danger', '', 0, 'admin', NOW()), +('prison_warning_type', 2, '监管预警', '2', 'warning', '', 0, 'admin', NOW()), +('prison_warning_type', 3, '改造预警', '3', 'info', '', 0, 'admin', NOW()), +('prison_warning_type', 4, '生产预警', '4', '', '', 0, 'admin', NOW()), +('prison_warning_type', 5, '生活卫生预警', '5', 'success', '', 0, 'admin', NOW()), +('prison_warning_type', 6, '其他', '6', '', '', 0, 'admin', NOW()); + +-- 预警等级字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警等级', 'prison_warning_level', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_warning_level', 1, '一般', '1', 'success', '', 0, 'admin', NOW()), +('prison_warning_level', 2, '重要', '2', 'warning', '', 0, 'admin', NOW()), +('prison_warning_level', 3, '紧急', '3', 'danger', '', 0, 'admin', NOW()), +('prison_warning_level', 4, '严重', '4', 'danger', '', 0, 'admin', NOW()); + +-- 预警状态字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警状态', 'prison_warning_status', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_warning_status', 1, '待核实', '1', 'warning', '', 0, 'admin', NOW()), +('prison_warning_status', 2, '已核实', '2', 'info', '', 0, 'admin', NOW()), +('prison_warning_status', 3, '已处置', '3', 'success', '', 0, 'admin', NOW()), +('prison_warning_status', 4, '已解除', '4', '', '', 0, 'admin', NOW()); + +-- 预警来源字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('预警来源', 'prison_warning_source', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_warning_source', 1, '民警报告', '1', '', '', 0, 'admin', NOW()), +('prison_warning_source', 2, '监控系统', '2', '', '', 0, 'admin', NOW()), +('prison_warning_source', 3, '举报', '3', '', '', 0, 'admin', NOW()), +('prison_warning_source', 4, '罪犯自首', '4', '', '', 0, 'admin', NOW()), +('prison_warning_source', 5, '智能分析', '5', '', '', 0, 'admin', NOW()), +('prison_warning_source', 6, '其他', '6', '', '', 0, 'admin', NOW()); + +-- 风险评估类型字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('风险评估类型', 'prison_risk_assessment_type', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_risk_assessment_type', 1, '入监评估', '1', 'info', '', 0, 'admin', NOW()), +('prison_risk_assessment_type', 2, '定期评估', '2', 'success', '', 0, 'admin', NOW()), +('prison_risk_assessment_type', 3, '专项评估', '3', 'warning', '', 0, 'admin', NOW()), +('prison_risk_assessment_type', 4, '出监评估', '4', '', '', 0, 'admin', NOW()); + +-- 风险等级字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('风险等级', 'prison_risk_level', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_risk_level', 1, '低风险', '1', 'success', '', 0, 'admin', NOW()), +('prison_risk_level', 2, '中风险', '2', 'warning', '', 0, 'admin', NOW()), +('prison_risk_level', 3, '高风险', '3', 'danger', '', 0, 'admin', NOW()), +('prison_risk_level', 4, '极高风险', '4', 'danger', '', 0, 'admin', NOW()); + +-- 评估方式字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('评估方式', 'prison_risk_assess_method', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_risk_assess_method', 1, '问卷评估', '1', '', '', 0, 'admin', NOW()), +('prison_risk_assess_method', 2, '量表评估', '2', '', '', 0, 'admin', NOW()), +('prison_risk_assess_method', 3, '综合评估', '3', '', '', 0, 'admin', NOW()); diff --git a/yudao-module-prison/src/main/resources/sql/report_module.sql b/yudao-module-prison/src/main/resources/sql/report_module.sql new file mode 100644 index 0000000000..c7f233403d --- /dev/null +++ b/yudao-module-prison/src/main/resources/sql/report_module.sql @@ -0,0 +1,261 @@ +-- ===================================================== +-- XL监狱综合管理平台 - 评估报告模块数据库脚本 +-- 生成时间: 2026-01-16 +-- 模块: 评估报告管理 +-- ===================================================== + +-- ===================================================== +-- 1. 评估报告模板表 (prison_report_template) +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_report_template` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '模板ID', + `name` varchar(200) NOT NULL COMMENT '模板名称', + `type` tinyint NOT NULL DEFAULT 1 COMMENT '模板类型:1-入监综合评估 2-定期考核报告 3-出监评估 4-减刑假释建议 5-专项评估', + `title_format` varchar(500) NOT NULL COMMENT '报告标题格式', + `dimensions` text COMMENT '评估维度配置,JSON格式', + `ai_prompt_config` text COMMENT 'AI提示词配置,JSON格式', + `style_config` text COMMENT '样式配置,JSON格式', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:0-停用 1-启用', + `is_default` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否默认', + `version` int NOT NULL DEFAULT 1 COMMENT '版本号', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_report_template_type` (`type`), + KEY `idx_prison_report_template_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评估报告模板表'; + +-- ===================================================== +-- 2. 评估报告表 (prison_report) +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_report` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '报告ID', + `report_no` varchar(64) NOT NULL COMMENT '报告编号', + `prisoner_id` bigint NOT NULL COMMENT '罪犯ID', + `prisoner_no` varchar(50) NOT NULL COMMENT '罪犯编号', + `prisoner_name` varchar(50) DEFAULT NULL COMMENT '罪犯姓名', + `template_id` bigint NOT NULL COMMENT '模板ID', + `template_name` varchar(200) DEFAULT NULL COMMENT '模板名称', + `title` varchar(500) NOT NULL COMMENT '报告标题', + `report_date` date NOT NULL COMMENT '报告日期', + `dimensions` text COMMENT '维度内容,JSON格式', + `conclusion` text COMMENT '综合结论', + `suggestions` text COMMENT '改造建议', + `risk_level` tinyint DEFAULT NULL COMMENT '风险等级:1-低风险 2-中风险 3-高风险 4-极高风险', + `attachments` text COMMENT '附件列表,JSON格式', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1-草稿 2-待审核 3-已通过 4-已退回', + `version` int NOT NULL DEFAULT 1 COMMENT '版本号', + `signature` varchar(500) DEFAULT NULL COMMENT '数字签名', + `fingerprint` varchar(128) DEFAULT NULL COMMENT '报告指纹', + `submitter_id` bigint DEFAULT NULL COMMENT '提交人ID', + `submitter_name` varchar(50) DEFAULT NULL COMMENT '提交人姓名', + `submit_time` datetime DEFAULT NULL COMMENT '提交时间', + `reviewer_id` bigint DEFAULT NULL COMMENT '审核人ID', + `reviewer_name` varchar(50) DEFAULT NULL COMMENT '审核人姓名', + `review_time` datetime DEFAULT NULL COMMENT '审核时间', + `review_comment` text COMMENT '审核意见', + `archived` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已归档', + `archived_time` datetime DEFAULT NULL COMMENT '归档时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_report_no` (`report_no`), + KEY `idx_prison_report_prisoner_id` (`prisoner_id`), + KEY `idx_prison_report_template_id` (`template_id`), + KEY `idx_prison_report_status` (`status`), + KEY `idx_prison_report_report_date` (`report_date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评估报告表'; + +-- ===================================================== +-- 3. 报告版本历史表 (prison_report_version) +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_report_version` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '版本ID', + `report_id` bigint NOT NULL COMMENT '报告ID', + `version` int NOT NULL COMMENT '版本号', + `content` text COMMENT '内容快照,JSON格式', + `modifier_id` bigint NOT NULL COMMENT '修改人ID', + `modifier_name` varchar(50) NOT NULL COMMENT '修改人姓名', + `modify_time` datetime NOT NULL COMMENT '修改时间', + `comment` varchar(500) DEFAULT NULL COMMENT '版本备注', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_report_version_report_id` (`report_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='报告版本历史表'; + +-- ===================================================== +-- 4. 快捷评语分类表 (prison_comment_category) +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_comment_category` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类ID', + `name` varchar(100) NOT NULL COMMENT '分类名称', + `type` tinyint NOT NULL DEFAULT 1 COMMENT '评估类型:1-入监 2-定期 3-出监 4-减刑 5-专项', + `sort` int NOT NULL DEFAULT 0 COMMENT '排序', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:0-停用 1-启用', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_comment_category_type` (`type`), + KEY `idx_prison_comment_category_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='快捷评语分类表'; + +-- ===================================================== +-- 5. 快捷评语表 (prison_quick_comment) +-- ===================================================== +CREATE TABLE IF NOT EXISTS `prison_quick_comment` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评语ID', + `category_id` bigint NOT NULL COMMENT '分类ID', + `content` text NOT NULL COMMENT '评语内容', + `usage_count` int NOT NULL DEFAULT 0 COMMENT '使用次数', + `sort` int NOT NULL DEFAULT 0 COMMENT '排序', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:0-停用 1-启用', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', + PRIMARY KEY (`id`), + KEY `idx_prison_quick_comment_category_id` (`category_id`), + KEY `idx_prison_quick_comment_status` (`status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='快捷评语表'; + +-- ===================================================== +-- 6. 字典数据 SQL +-- ===================================================== + +-- 报告模板类型字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('报告模板类型', 'prison_report_template_type', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_report_template_type', 1, '入监综合评估', '1', 'info', '', 0, 'admin', NOW()), +('prison_report_template_type', 2, '定期考核报告', '2', 'success', '', 0, 'admin', NOW()), +('prison_report_template_type', 3, '出监评估', '3', 'warning', '', 0, 'admin', NOW()), +('prison_report_template_type', 4, '减刑假释建议', '4', 'danger', '', 0, 'admin', NOW()), +('prison_report_template_type', 5, '专项评估', '5', '', '', 0, 'admin', NOW()); + +-- 报告状态字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('报告状态', 'prison_report_status', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_report_status', 1, '草稿', '1', 'info', '', 0, 'admin', NOW()), +('prison_report_status', 2, '待审核', '2', 'warning', '', 0, 'admin', NOW()), +('prison_report_status', 3, '已通过', '3', 'success', '', 0, 'admin', NOW()), +('prison_report_status', 4, '已退回', '4', 'danger', '', 0, 'admin', NOW()); + +-- 通用状态字典 +INSERT INTO system_dict_type (name, type, status, creator, create_time) VALUES ('通用状态', 'prison_common_status', 0, 'admin', NOW()); +INSERT INTO system_dict_data (dict_type, sort, label, value, color_type, css_class, status, creator, create_time) VALUES +('prison_common_status', 0, '停用', '0', 'info', '', 0, 'admin', NOW()), +('prison_common_status', 1, '启用', '1', 'success', '', 0, 'admin', NOW()); + +-- ===================================================== +-- 7. 菜单权限 SQL +-- ===================================================== + +-- 获取监狱管理父菜单ID +SELECT @prison_parent_id := id FROM system_menu WHERE name = '监狱管理' LIMIT 1; + +-- 评估报告模板管理菜单 +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('评估报告模板', '', 2, 15, @prison_parent_id, 'report-template', 'document', 'prison/report-template/index', 0, 'admin', NOW()); +SELECT @report_template_id := LAST_INSERT_ID(); + +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('模板查询', 'prison:report-template:query', 3, 1, @report_template_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('模板创建', 'prison:report-template:create', 3, 2, @report_template_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('模板修改', 'prison:report-template:update', 3, 3, @report_template_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('模板删除', 'prison:report-template:delete', 3, 4, @report_template_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('模板导出', 'prison:report-template:export', 3, 5, @report_template_id, '', '', '', 0, 'admin', NOW()); + +-- 评估报告管理菜单 +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('评估报告', '', 2, 16, @prison_parent_id, 'report', 'document-checked', 'prison/report/index', 0, 'admin', NOW()); +SELECT @report_id := LAST_INSERT_ID(); + +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('报告查询', 'prison:report:query', 3, 1, @report_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('报告创建', 'prison:report:create', 3, 2, @report_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('报告修改', 'prison:report:update', 3, 3, @report_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('报告删除', 'prison:report:delete', 3, 4, @report_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('报告提交审核', 'prison:report:submit', 3, 5, @report_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('报告审核', 'prison:report:review', 3, 6, @report_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('报告导出', 'prison:report:export', 3, 7, @report_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('AI生成', 'prison:report:ai-generate', 3, 8, @report_id, '', '', '', 0, 'admin', NOW()); + +-- 快捷评语管理菜单 +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('快捷评语', '', 2, 17, @prison_parent_id, 'quick-comment', 'chat-dot-square', 'prison/quick-comment/index', 0, 'admin', NOW()); +SELECT @quick_comment_id := LAST_INSERT_ID(); + +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('评语查询', 'prison:quick-comment:query', 3, 1, @quick_comment_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('评语创建', 'prison:quick-comment:create', 3, 2, @quick_comment_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('评语修改', 'prison:quick-comment:update', 3, 3, @quick_comment_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('评语删除', 'prison:quick-comment:delete', 3, 4, @quick_comment_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('评语导入', 'prison:quick-comment:import', 3, 5, @quick_comment_id, '', '', '', 0, 'admin', NOW()); +INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status, creator, create_time) +VALUES ('评语导出', 'prison:quick-comment:export', 3, 6, @quick_comment_id, '', '', '', 0, 'admin', NOW()); + +-- ===================================================== +-- 8. 初始化快捷评语数据 +-- ===================================================== + +-- 快捷评语分类 +INSERT INTO prison_comment_category (name, type, sort, status, creator, create_time) VALUES +('入监综合评估', 1, 1, 1, 'admin', NOW()), +('定期考核报告', 2, 2, 1, 'admin', NOW()), +('出监评估', 3, 3, 1, 'admin', NOW()), +('减刑假释建议', 4, 4, 1, 'admin', NOW()), +('专项评估', 5, 5, 1, 'admin', NOW()); + +-- 快捷评语示例 +INSERT INTO prison_quick_comment (category_id, content, usage_count, sort, status, creator, create_time) +SELECT id, '该犯入监以来,认罪悔罪态度较好,能积极参加学习教育和劳动改造,遵守监规纪律,无违规违纪记录。', 0, 1, 1, 'admin', NOW() +FROM prison_comment_category WHERE type = 1 LIMIT 1; + +INSERT INTO prison_quick_comment (category_id, content, usage_count, sort, status, creator, create_time) +SELECT id, '经综合评估,该犯风险等级为低风险,建议继续当前处遇级别。', 0, 2, 1, 'admin', NOW() +FROM prison_comment_category WHERE type = 1 LIMIT 1; + +INSERT INTO prison_quick_comment (category_id, content, usage_count, sort, status, creator, create_time) +SELECT id, '该犯本月表现良好,考核分为95分,被评为良好等次。', 0, 1, 1, 'admin', NOW() +FROM prison_comment_category WHERE type = 2 LIMIT 1; + +INSERT INTO prison_quick_comment (category_id, content, usage_count, sort, status, creator, create_time) +SELECT id, '该犯在本考核期内累计获得表扬3次,无任何违规记录,改造表现优秀。', 0, 2, 1, 'admin', NOW() +FROM prison_comment_category WHERE type = 2 LIMIT 1; + +INSERT INTO prison_quick_comment (category_id, content, usage_count, sort, status, creator, create_time) +SELECT id, '该犯服刑期间表现良好,符合假释条件,建议依法呈报假释。', 0, 1, 1, 'admin', NOW() +FROM prison_comment_category WHERE type = 4 LIMIT 1; diff --git a/yudao-module-prison/src/test/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/PrisonConsumptionControllerTest.java b/yudao-module-prison/src/test/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/PrisonConsumptionControllerTest.java deleted file mode 100644 index b916ab12f0..0000000000 --- a/yudao-module-prison/src/test/java/cn/iocoder/yudao/module/prison/controller/admin/consumption/PrisonConsumptionControllerTest.java +++ /dev/null @@ -1,230 +0,0 @@ -package cn.iocoder.yudao.module.prison.controller.admin.consumption; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.prison.controller.admin.consumption.vo.*; -import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDO; -import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDetailDO; -import cn.iocoder.yudao.module.prison.service.consumption.ConsumptionService; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.http.MediaType; -import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.web.servlet.MockMvc; - -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.when; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; - -/** - * 消费订单 Controller 测试类 - * - * @author xl - */ -@WebMvcTest(PrisonConsumptionController.class) -class PrisonConsumptionControllerTest { - - @Autowired - private MockMvc mockMvc; - - @MockBean - private ConsumptionService consumptionService; - - @Test - @WithMockUser - void testGetConsumptionPage_Success() throws Exception { - // 准备测试数据 - ConsumptionDO consumption = new ConsumptionDO(); - consumption.setId(1L); - consumption.setPrisonerId(100L); - consumption.setPrisonerNo("PRISONER001"); - consumption.setOrderNo("CS1234567890"); - consumption.setType(1); - consumption.setTotalAmount(new BigDecimal("100.00")); - consumption.setBalance(new BigDecimal("900.00")); - consumption.setTradeTime(LocalDateTime.now()); - consumption.setStatus(1); - - PageResult pageResult = new PageResult<>(); - pageResult.setList(Collections.singletonList(consumption)); - pageResult.setTotal(1L); - - when(consumptionService.getConsumptionPage(any(ConsumptionPageReqVO.class))).thenReturn(pageResult); - - // 执行测试 - mockMvc.perform(get("/prison/consumption/page") - .param("pageNo", "1") - .param("pageSize", "10") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.data.list[0].id").value(1)) - .andExpect(jsonPath("$.data.list[0].prisonerNo").value("PRISONER001")) - .andExpect(jsonPath("$.data.list[0].type").value(1)) - .andExpect(jsonPath("$.data.total").value(1)); - } - - @Test - @WithMockUser - void testGetConsumption_Success() throws Exception { - // 准备测试数据 - ConsumptionDO consumption = new ConsumptionDO(); - consumption.setId(1L); - consumption.setPrisonerId(100L); - consumption.setPrisonerNo("PRISONER001"); - consumption.setOrderNo("CS1234567890"); - consumption.setType(1); - consumption.setTotalAmount(new BigDecimal("100.00")); - consumption.setStatus(1); - - ConsumptionDetailDO detail = new ConsumptionDetailDO(); - detail.setId(1L); - detail.setConsumptionId(1L); - detail.setGoodsName("商品A"); - detail.setGoodsPrice(new BigDecimal("50.00")); - detail.setGoodsCount(2); - - when(consumptionService.getConsumption(1L)).thenReturn(consumption); - when(consumptionService.getConsumptionDetailList(1L)).thenReturn(Collections.singletonList(detail)); - - // 执行测试 - mockMvc.perform(get("/prison/consumption/get") - .param("id", "1") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.data.id").value(1)) - .andExpect(jsonPath("$.data.prisonerNo").value("PRISONER001")) - .andExpect(jsonPath("$.data.details[0].goodsName").value("商品A")); - } - - @Test - @WithMockUser - void testGetConsumption_NotFound() throws Exception { - when(consumptionService.getConsumption(999L)).thenReturn(null); - - mockMvc.perform(get("/prison/consumption/get") - .param("id", "999") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.data").isEmpty()); - } - - @Test - @WithMockUser - void testDeleteConsumption_Success() throws Exception { - // 执行测试 - 删除成功 - mockMvc.perform(delete("/prison/consumption/delete") - .param("id", "1") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.data").value(true)); - } - - @Test - @WithMockUser - void testDeleteConsumption_ValidationError() throws Exception { - // 缺少必需参数 id - mockMvc.perform(delete("/prison/consumption/delete") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isBadRequest()); - } - - @Test - @WithMockUser - void testDeleteConsumptionList_Success() throws Exception { - // 执行测试 - 批量删除 - mockMvc.perform(delete("/prison/consumption/delete-list") - .param("ids", "1,2,3") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.data").value(true)); - } - - @Test - @WithMockUser - void testDeleteConsumptionList_ValidationError() throws Exception { - // 批量删除 ids 为空 - mockMvc.perform(delete("/prison/consumption/delete-list") - .param("ids", "") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isBadRequest()); - } - - @Test - @WithMockUser - void testGetConsumptionDetailList_Success() throws Exception { - ConsumptionDetailDO detail = new ConsumptionDetailDO(); - detail.setId(1L); - detail.setConsumptionId(1L); - detail.setGoodsName("商品A"); - detail.setGoodsPrice(new BigDecimal("25.50")); - detail.setGoodsCount(4); - - when(consumptionService.getConsumptionDetailList(1L)) - .thenReturn(Collections.singletonList(detail)); - - mockMvc.perform(get("/prison/consumption/detail-list") - .param("consumptionId", "1") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.data[0].goodsName").value("商品A")) - .andExpect(jsonPath("$.data[0].goodsPrice").value(25.5)); - } - - @Test - @WithMockUser - void testExportConsumptionExcel_Success() throws Exception { - ConsumptionDO consumption = new ConsumptionDO(); - consumption.setId(1L); - consumption.setPrisonerNo("PRISONER001"); - consumption.setType(1); - consumption.setTotalAmount(new BigDecimal("100.00")); - - PageResult pageResult = new PageResult<>(); - pageResult.setList(Collections.singletonList(consumption)); - pageResult.setTotal(1L); - - when(consumptionService.getConsumptionPage(any(ConsumptionPageReqVO.class))).thenReturn(pageResult); - - mockMvc.perform(get("/prison/consumption/export-excel") - .param("pageNo", "1") - .param("pageSize", "10") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()); - } - - @Test - @WithMockUser - void testGetConsumptionPage_WithFilters() throws Exception { - // 测试带筛选条件的分页查询 - ConsumptionDO consumption = new ConsumptionDO(); - consumption.setId(1L); - consumption.setPrisonerId(100L); - consumption.setPrisonerNo("PRISONER001"); - consumption.setType(1); - consumption.setStatus(1); - - PageResult pageResult = new PageResult<>(); - pageResult.setList(Collections.singletonList(consumption)); - pageResult.setTotal(1L); - - when(consumptionService.getConsumptionPage(any(ConsumptionPageReqVO.class))).thenReturn(pageResult); - - mockMvc.perform(get("/prison/consumption/page") - .param("pageNo", "1") - .param("pageSize", "10") - .param("prisonerNo", "PRISONER001") - .param("type", "1") - .param("status", "1") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.data.total").value(1)); - } -} diff --git a/yudao-module-prison/src/test/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionServiceTest.java b/yudao-module-prison/src/test/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionServiceTest.java deleted file mode 100644 index e23c128049..0000000000 --- a/yudao-module-prison/src/test/java/cn/iocoder/yudao/module/prison/service/consumption/ConsumptionServiceTest.java +++ /dev/null @@ -1,283 +0,0 @@ -package cn.iocoder.yudao.module.prison.service.consumption; - -import cn.iocoder.yudao.framework.common.exception.ServiceException; -import cn.iocoder.yudao.module.prison.controller.admin.consumption.vo.*; -import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDetailDO; -import cn.iocoder.yudao.module.prison.dal.dataobject.consumption.ConsumptionDO; -import cn.iocoder.yudao.module.prison.dal.mysql.consumption.ConsumptionDetailMapper; -import cn.iocoder.yudao.module.prison.dal.mysql.consumption.ConsumptionMapper; -import cn.iocoder.yudao.module.prison.service.consumption.impl.ConsumptionServiceImpl; -import cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants; -import cn.iocoder.yudao.module.prison.enums.ConsumptionTypeEnum; -import cn.iocoder.yudao.module.prison.enums.ConsumptionStatusEnum; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; - -/** - * 消费订单 Service 测试类 - * - * @author xl - */ -@ExtendWith(MockitoExtension.class) -class ConsumptionServiceTest { - - @InjectMocks - private ConsumptionServiceImpl consumptionService; - - @Mock - private ConsumptionMapper consumptionMapper; - - @Mock - private ConsumptionDetailMapper consumptionDetailMapper; - - private ConsumptionSaveReqVO createReqVO; - private ConsumptionDO consumptionDO; - - @BeforeEach - void setUp() { - // 准备创建请求VO - createReqVO = new ConsumptionSaveReqVO(); - createReqVO.setPrisonerId(100L); - createReqVO.setPrisonerNo("PRISONER001"); - createReqVO.setType(1); - createReqVO.setTotalAmount(new BigDecimal("100.00")); - createReqVO.setBalance(new BigDecimal("900.00")); - createReqVO.setStatus(1); - createReqVO.setTradeTime(LocalDateTime.now()); - - // 准备明细数据 - ConsumptionDetailSaveReqVO detail1 = new ConsumptionDetailSaveReqVO(); - detail1.setGoodsName("商品A"); - detail1.setGoodsPrice(new BigDecimal("30.00")); - detail1.setGoodsCount(2); - detail1.setSubtotal(new BigDecimal("60.00")); - - ConsumptionDetailSaveReqVO detail2 = new ConsumptionDetailSaveReqVO(); - detail2.setGoodsName("商品B"); - detail2.setGoodsPrice(new BigDecimal("20.00")); - detail2.setGoodsCount(2); - detail2.setSubtotal(new BigDecimal("40.00")); - - createReqVO.setDetails(Arrays.asList(detail1, detail2)); - - // 准备DO对象 - consumptionDO = new ConsumptionDO(); - consumptionDO.setId(1L); - consumptionDO.setPrisonerId(100L); - consumptionDO.setPrisonerNo("PRISONER001"); - consumptionDO.setOrderNo("CS1234567890"); - consumptionDO.setType(1); - consumptionDO.setTotalAmount(new BigDecimal("100.00")); - consumptionDO.setStatus(1); - consumptionDO.setCreateTime(LocalDateTime.now()); - consumptionDO.setUpdateTime(LocalDateTime.now()); - } - - @Test - void testCreateConsumption_Success() { - // 设置Mapper行为 - when(consumptionMapper.insert(any(ConsumptionDO.class))).thenReturn(1); - doNothing().when(consumptionDetailMapper).insertBatch(anyList()); - - // 执行测试 - Long result = consumptionService.createConsumption(createReqVO); - - // 验证结果 - assertNotNull(result); - assertEquals(1L, result); - verify(consumptionMapper).insert(any(ConsumptionDO.class)); - verify(consumptionDetailMapper).insertBatch(anyList()); - } - - @Test - void testCreateConsumption_DetailEmpty() { - // 明细为空 - createReqVO.setDetails(null); - - // 执行测试并验证异常 - assertThrows(ServiceException.class, () -> { - consumptionService.createConsumption(createReqVO); - }); - - verify(consumptionMapper, never()).insert(any()); - } - - @Test - void testUpdateConsumption_Success() { - // 准备更新数据 - ConsumptionSaveReqVO updateReqVO = new ConsumptionSaveReqVO(); - updateReqVO.setId(1L); - updateReqVO.setPrisonerId(100L); - updateReqVO.setType(2); - updateReqVO.setTotalAmount(new BigDecimal("150.00")); - - ConsumptionDetailSaveReqVO detail = new ConsumptionDetailSaveReqVO(); - detail.setGoodsName("商品C"); - detail.setGoodsPrice(new BigDecimal("75.00")); - detail.setGoodsCount(2); - detail.setSubtotal(new BigDecimal("150.00")); - updateReqVO.setDetails(Collections.singletonList(detail)); - - // 设置Mapper行为 - when(consumptionMapper.selectById(1L)).thenReturn(consumptionDO); - when(consumptionMapper.updateById(any(ConsumptionDO.class))).thenReturn(1); - doNothing().when(consumptionDetailMapper).deleteByConsumptionId(1L); - doNothing().when(consumptionDetailMapper).insertBatch(anyList()); - - // 执行测试 - consumptionService.updateConsumption(updateReqVO); - - // 验证结果 - verify(consumptionMapper).selectById(1L); - verify(consumptionMapper).updateById(any(ConsumptionDO.class)); - verify(consumptionDetailMapper).deleteByConsumptionId(1L); - verify(consumptionDetailMapper).insertBatch(anyList()); - } - - @Test - void testUpdateConsumption_NotFound() { - ConsumptionSaveReqVO updateReqVO = new ConsumptionSaveReqVO(); - updateReqVO.setId(999L); - - when(consumptionMapper.selectById(999L)).thenReturn(null); - - assertThrows(ServiceException.class, () -> { - consumptionService.updateConsumption(updateReqVO); - }); - - verify(consumptionMapper, never()).updateById(any()); - } - - @Test - void testDeleteConsumption_Success() { - when(consumptionMapper.selectById(1L)).thenReturn(consumptionDO); - when(consumptionMapper.deleteById(1L)).thenReturn(1); - doNothing().when(consumptionDetailMapper).deleteByConsumptionId(1L); - - consumptionService.deleteConsumption(1L); - - verify(consumptionMapper).deleteById(1L); - verify(consumptionDetailMapper).deleteByConsumptionId(1L); - } - - @Test - void testDeleteConsumption_NotFound() { - when(consumptionMapper.selectById(999L)).thenReturn(null); - - assertThrows(ServiceException.class, () -> { - consumptionService.deleteConsumption(999L); - }); - - verify(consumptionMapper, never()).deleteById(any()); - } - - @Test - void testDeleteConsumptionListByIds_Success() { - List ids = Arrays.asList(1L, 2L, 3L); - when(consumptionMapper.deleteBatchIds(ids)).thenReturn(3); - doNothing().when(consumptionDetailMapper).deleteByConsumptionIds(ids); - - consumptionService.deleteConsumptionListByIds(ids); - - verify(consumptionMapper).deleteBatchIds(ids); - verify(consumptionDetailMapper).deleteByConsumptionIds(ids); - } - - @Test - void testGetConsumption_Success() { - when(consumptionMapper.selectById(1L)).thenReturn(consumptionDO); - - ConsumptionDO result = consumptionService.getConsumption(1L); - - assertNotNull(result); - assertEquals(1L, result.getId()); - assertEquals("PRISONER001", result.getPrisonerNo()); - } - - @Test - void testGetConsumption_NotFound() { - when(consumptionMapper.selectById(999L)).thenReturn(null); - - ConsumptionDO result = consumptionService.getConsumption(999L); - - assertNull(result); - } - - @Test - void testGetConsumptionPage_Success() { - ConsumptionPageReqVO pageReqVO = new ConsumptionPageReqVO(); - pageReqVO.setPageNo(1); - pageReqVO.setPageSize(10); - - Page page = new Page<>(1, 10); - page.setRecords(Collections.singletonList(consumptionDO)); - page.setTotal(1); - - when(consumptionMapper.selectPage(any(Page.class), any(LambdaQueryWrapper.class))) - .thenReturn(page); - - cn.iocoder.yudao.framework.common.pojo.PageResult result = - consumptionService.getConsumptionPage(pageReqVO); - - assertNotNull(result); - assertEquals(1, result.getTotal()); - assertEquals(1, result.getList().size()); - assertEquals("PRISONER001", result.getList().get(0).getPrisonerNo()); - } - - @Test - void testGetConsumptionDetailList_Success() { - ConsumptionDetailDO detail = new ConsumptionDetailDO(); - detail.setId(1L); - detail.setConsumptionId(1L); - detail.setGoodsName("商品A"); - detail.setGoodsPrice(new BigDecimal("50.00")); - detail.setGoodsCount(2); - - when(consumptionDetailMapper.selectListByConsumptionId(1L)) - .thenReturn(Collections.singletonList(detail)); - - List result = consumptionService.getConsumptionDetailList(1L); - - assertNotNull(result); - assertEquals(1, result.size()); - assertEquals("商品A", result.get(0).getGoodsName()); - } - - @Test - void testExportExcel_Success() { - ConsumptionPageReqVO pageReqVO = new ConsumptionPageReqVO(); - pageReqVO.setPageNo(1); - pageReqVO.setPageSize(10); - - Page page = new Page<>(1, 10); - page.setRecords(Collections.singletonList(consumptionDO)); - page.setTotal(1); - - when(consumptionMapper.selectPage(any(Page.class), any(LambdaQueryWrapper.class))) - .thenReturn(page); - - cn.iocoder.yudao.framework.common.pojo.PageResult result = - consumptionService.getConsumptionPage(pageReqVO); - - assertNotNull(result); - assertEquals(1, result.getTotal()); - } -} diff --git a/yudao-module-system/bin/pom.xml b/yudao-module-system/bin/pom.xml new file mode 100644 index 0000000000..e8db02f7fd --- /dev/null +++ b/yudao-module-system/bin/pom.xml @@ -0,0 +1,119 @@ + + + + cn.iocoder.boot + yudao + ${revision} + + 4.0.0 + yudao-module-system + jar + + ${project.artifactId} + + system 模块下,我们放通用业务,支撑上层的核心业务。 + 例如说:用户、部门、权限、数据字典等等 + + + + + cn.iocoder.boot + yudao-module-infra + ${revision} + + + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-data-permission + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-tenant + + + cn.iocoder.boot + yudao-spring-boot-starter-biz-ip + + + + + cn.iocoder.boot + yudao-spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-validation + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + + + + cn.iocoder.boot + yudao-spring-boot-starter-job + + + + + cn.iocoder.boot + yudao-spring-boot-starter-mq + + + + + + + cn.iocoder.boot + yudao-spring-boot-starter-excel + + + + org.springframework.boot + spring-boot-starter-mail + + + + + me.zhyd.oauth + JustAuth + + + com.xkcoding.justauth + justauth-spring-boot-starter + + + + com.github.binarywang + wx-java-mp-spring-boot-starter + + + com.github.binarywang + wx-java-miniapp-spring-boot-starter + + + + com.anji-plus + captcha-spring-boot-starter + + + + org.dromara.hutool + hutool-extra + + + + + diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.class new file mode 100644 index 0000000000..487df957e2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.class new file mode 100644 index 0000000000..65427f6bcd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.class new file mode 100644 index 0000000000..3d8d1cbe81 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApiImpl.class new file mode 100644 index 0000000000..606b3af344 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/PostApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.class new file mode 100644 index 0000000000..516dd6d9e5 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/PostRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/PostRespDTO.class new file mode 100644 index 0000000000..8a5efbb43f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/PostRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.class new file mode 100644 index 0000000000..8ff800f34f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.class new file mode 100644 index 0000000000..36c247458c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.class new file mode 100644 index 0000000000..f7f6cd003b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.class new file mode 100644 index 0000000000..a09b1d7ac9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApi.class new file mode 100644 index 0000000000..977127c823 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApiImpl.class new file mode 100644 index 0000000000..2b07bafeaf Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.class new file mode 100644 index 0000000000..66aa7986ea Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogPageReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogPageReqDTO.class new file mode 100644 index 0000000000..94c3d07d10 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogPageReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogRespDTO.class new file mode 100644 index 0000000000..86a54f2746 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApi.class new file mode 100644 index 0000000000..69b6b0c3fc Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApiImpl.class new file mode 100644 index 0000000000..184e17216c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/MailSendApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/dto/MailSendSingleToUserReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/dto/MailSendSingleToUserReqDTO.class new file mode 100644 index 0000000000..f23be13353 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/mail/dto/MailSendSingleToUserReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApi.class new file mode 100644 index 0000000000..fd9310b20a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.class new file mode 100644 index 0000000000..6341645b00 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.class new file mode 100644 index 0000000000..bc43331c5c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifyTemplateReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifyTemplateReqDTO.class new file mode 100644 index 0000000000..ae2dbac19a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifyTemplateReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApiImpl.class new file mode 100644 index 0000000000..8e4c502ddb Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/package-info.class new file mode 100644 index 0000000000..d8bd187369 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApi.class new file mode 100644 index 0000000000..ab79f25bd7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApiImpl.class new file mode 100644 index 0000000000..2139f93688 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.class new file mode 100644 index 0000000000..65e881a3fa Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApiImpl.class new file mode 100644 index 0000000000..401b0873ce Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/permission/RoleApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApi.class new file mode 100644 index 0000000000..6f49fd28fa Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApiImpl.class new file mode 100644 index 0000000000..c8068a4af2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsCodeApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApi.class new file mode 100644 index 0000000000..2aa86c4983 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApiImpl.class new file mode 100644 index 0000000000..f38c800628 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/SmsSendApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeSendReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeSendReqDTO.class new file mode 100644 index 0000000000..8b9d9d0158 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeSendReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeUseReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeUseReqDTO.class new file mode 100644 index 0000000000..1759607a1d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeUseReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.class new file mode 100644 index 0000000000..8737af3e96 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/code/SmsCodeValidateReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.class new file mode 100644 index 0000000000..79dffcbb26 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.class new file mode 100644 index 0000000000..9520ec58db Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.class new file mode 100644 index 0000000000..6c562b7845 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialClientApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApi.class new file mode 100644 index 0000000000..5ce5efab4e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.class new file mode 100644 index 0000000000..1ad3ecfa6b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserBindReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserBindReqDTO.class new file mode 100644 index 0000000000..c33e6ac882 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserBindReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserRespDTO.class new file mode 100644 index 0000000000..ac1ab7a0d9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserUnbindReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserUnbindReqDTO.class new file mode 100644 index 0000000000..0530caa1be Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserUnbindReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.class new file mode 100644 index 0000000000..5babfb9503 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxJsapiSignatureRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.class new file mode 100644 index 0000000000..2befd1caaa Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxPhoneNumberInfoRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxQrcodeReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxQrcodeReqDTO.class new file mode 100644 index 0000000000..606177e370 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxQrcodeReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaOrderNotifyConfirmReceiveReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaOrderNotifyConfirmReceiveReqDTO.class new file mode 100644 index 0000000000..849fa2964a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaOrderNotifyConfirmReceiveReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaOrderUploadShippingInfoReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaOrderUploadShippingInfoReqDTO.class new file mode 100644 index 0000000000..e95c44389e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaOrderUploadShippingInfoReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaSubscribeMessageSendReqDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaSubscribeMessageSendReqDTO.class new file mode 100644 index 0000000000..7dd6e95349 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaSubscribeMessageSendReqDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaSubscribeTemplateRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaSubscribeTemplateRespDTO.class new file mode 100644 index 0000000000..a44d98c217 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialWxaSubscribeTemplateRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApiImpl.class new file mode 100644 index 0000000000..dc2038fa92 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.class new file mode 100644 index 0000000000..51f43b8f2c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.class new file mode 100644 index 0000000000..100e02449c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.class new file mode 100644 index 0000000000..f945d35473 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/api/user/dto/AdminUserRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.class new file mode 100644 index 0000000000..c266f73b93 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.http new file mode 100644 index 0000000000..52a724bf35 --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.http @@ -0,0 +1,51 @@ +### 请求 /login 接口 => 成功 +POST {{baseUrl}}/system/auth/login +Content-Type: application/json +tenant-id: {{adminTenantId}} +tag: Yunai.local + +{ + "username": "admin", + "password": "admin123", + "uuid": "3acd87a09a4f48fb9118333780e94883", + "code": "1024" +} + +### 请求 /login 接口【加密 AES】 => 成功 +POST {{baseUrl}}/system/auth/login +Content-Type: application/json +tenant-id: {{adminTenantId}} +tag: Yunai.local +X-API-ENCRYPT: true + +WvSX9MOrenyGfBhEM0g1/hHgq8ocktMZ9OwAJ6MOG5FUrzYF/rG5JF1eMptQM1wT73VgDS05l/37WeRtad+JrqChAul/sR/SdOsUKqjBhvvQx1JVhzxr6s8uUP67aKTSZ6Psv7O32ELxXrzSaQvG5CInzz3w6sLtbNNLd1kXe6Q= + +### 请求 /login 接口【加密 RSA】 => 成功 +POST {{baseUrl}}/system/auth/login +Content-Type: application/json +tenant-id: {{adminTenantId}} +tag: Yunai.local +X-API-ENCRYPT: true + +e7QZTork9ZV5CmgZvSd+cHZk3xdUxKtowLM02kOha+gxHK2H/daU8nVBYS3+bwuDRy5abf+Pz1QJJGVAEd27wwrXBmupOOA/bhpuzzDwcRuJRD+z+YgiNoEXFDRHERxPYlPqAe9zAHtihD0ceub1AjybQsEsROew4C3Q602XYW0= + +### 请求 /login 接口 => 成功(无验证码) +POST {{baseUrl}}/system/auth/login +Content-Type: application/json +tenant-id: {{adminTenantId}} + +{ + "username": "admin", + "password": "admin123" +} + +### 请求 /get-permission-info 接口 => 成功 +GET {{baseUrl}}/system/auth/get-permission-info +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + +### 请求 /list-menus 接口 => 成功 +GET {{baseUrl}}/system/list-menus +Authorization: Bearer {{token}} +#Authorization: Bearer a6aa7714a2e44c95aaa8a2c5adc2a67a +tenant-id: {{adminTenantId}} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO$AuthLoginReqVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO$AuthLoginReqVOBuilder.class new file mode 100644 index 0000000000..7dba96ae83 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO$AuthLoginReqVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.class new file mode 100644 index 0000000000..1166e24d5e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO$AuthLoginRespVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO$AuthLoginRespVOBuilder.class new file mode 100644 index 0000000000..d0fffd8ebe Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO$AuthLoginRespVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.class new file mode 100644 index 0000000000..32e8ee76bc Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO$AuthMenuRespVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO$AuthMenuRespVOBuilder.class new file mode 100644 index 0000000000..4d57194739 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO$AuthMenuRespVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.class new file mode 100644 index 0000000000..d530590fa8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthMenuRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$AuthPermissionInfoRespVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$AuthPermissionInfoRespVOBuilder.class new file mode 100644 index 0000000000..20da6610a2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$AuthPermissionInfoRespVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$MenuVO$MenuVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$MenuVO$MenuVOBuilder.class new file mode 100644 index 0000000000..316a9f9c83 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$MenuVO$MenuVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$MenuVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$MenuVO.class new file mode 100644 index 0000000000..990173f070 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$MenuVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$UserVO$UserVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$UserVO$UserVOBuilder.class new file mode 100644 index 0000000000..802050866c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$UserVO$UserVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$UserVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$UserVO.class new file mode 100644 index 0000000000..d1d00a207e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO$UserVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.class new file mode 100644 index 0000000000..08cdba822f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthPermissionInfoRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthRegisterReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthRegisterReqVO.class new file mode 100644 index 0000000000..d2aa184025 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthRegisterReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthResetPasswordReqVO$AuthResetPasswordReqVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthResetPasswordReqVO$AuthResetPasswordReqVOBuilder.class new file mode 100644 index 0000000000..76907ab258 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthResetPasswordReqVO$AuthResetPasswordReqVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthResetPasswordReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthResetPasswordReqVO.class new file mode 100644 index 0000000000..e4e2643336 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthResetPasswordReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO$AuthSmsLoginReqVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO$AuthSmsLoginReqVOBuilder.class new file mode 100644 index 0000000000..fd90dcd21e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO$AuthSmsLoginReqVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.class new file mode 100644 index 0000000000..344da84425 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsLoginReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO$AuthSmsSendReqVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO$AuthSmsSendReqVOBuilder.class new file mode 100644 index 0000000000..156ad45b3c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO$AuthSmsSendReqVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.class new file mode 100644 index 0000000000..e2a6d87135 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSmsSendReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO$AuthSocialLoginReqVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO$AuthSocialLoginReqVOBuilder.class new file mode 100644 index 0000000000..608c7c081c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO$AuthSocialLoginReqVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.class new file mode 100644 index 0000000000..cf32ef4a76 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthSocialLoginReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/CaptchaVerificationReqVO$CodeEnableGroup.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/CaptchaVerificationReqVO$CodeEnableGroup.class new file mode 100644 index 0000000000..6aa3a0939e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/CaptchaVerificationReqVO$CodeEnableGroup.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/CaptchaVerificationReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/CaptchaVerificationReqVO.class new file mode 100644 index 0000000000..33dcdd065c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/CaptchaVerificationReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.class new file mode 100644 index 0000000000..df89de4d54 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.class new file mode 100644 index 0000000000..767bf5b568 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.class new file mode 100644 index 0000000000..0d360fbdeb Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptListReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptListReqVO.class new file mode 100644 index 0000000000..7152e34d1d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptListReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.class new file mode 100644 index 0000000000..33edd00eb6 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.class new file mode 100644 index 0000000000..76ac52bd46 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.class new file mode 100644 index 0000000000..264cdca5bd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostPageReqVO.class new file mode 100644 index 0000000000..185fe3ffe9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.class new file mode 100644 index 0000000000..041e5aff33 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSaveReqVO.class new file mode 100644 index 0000000000..6e8164729a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.class new file mode 100644 index 0000000000..9cfeec8a56 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.class new file mode 100644 index 0000000000..5879a91ee3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.http new file mode 100644 index 0000000000..5a7ce8ee15 --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.http @@ -0,0 +1,4 @@ +### 请求 /menu/list 接口 => 成功 +GET {{baseUrl}}/system/dict-data/list-all-simple +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictTypeController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictTypeController.class new file mode 100644 index 0000000000..e9d447953a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictTypeController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.class new file mode 100644 index 0000000000..e8f4c42619 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.class new file mode 100644 index 0000000000..e8c369b93e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.class new file mode 100644 index 0000000000..a25e7bc2f6 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.class new file mode 100644 index 0000000000..ded40002c6 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.class new file mode 100644 index 0000000000..4f26b78a28 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypePageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.class new file mode 100644 index 0000000000..7e1aac8728 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.class new file mode 100644 index 0000000000..7585636554 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.class new file mode 100644 index 0000000000..032746833b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.class new file mode 100644 index 0000000000..ab7f19392d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.http new file mode 100644 index 0000000000..14165619ef --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.http @@ -0,0 +1,5 @@ +### 获得地区树 +GET {{baseUrl}}/system/area/tree +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.class new file mode 100644 index 0000000000..c4f5966ce2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/vo/AreaNodeRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/LoginLogController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/LoginLogController.class new file mode 100644 index 0000000000..64739220ac Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/LoginLogController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.class new file mode 100644 index 0000000000..1baff17e5d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.http new file mode 100644 index 0000000000..be3102eb6f --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.http @@ -0,0 +1,4 @@ +### 请求 /system/operate-log/page 接口 => 成功 +GET {{baseUrl}}/system/operate-log/page +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.class new file mode 100644 index 0000000000..2cfc324374 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.class new file mode 100644 index 0000000000..f92007338e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.class new file mode 100644 index 0000000000..75180ea32f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.class new file mode 100644 index 0000000000..d0b1c161e7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.class new file mode 100644 index 0000000000..4149dfdb7e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailAccountController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailLogController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailLogController.class new file mode 100644 index 0000000000..3e3fa0062f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailLogController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.class new file mode 100644 index 0000000000..a1ed0c0dcc Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.http new file mode 100644 index 0000000000..9ad2ed2085 --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.http @@ -0,0 +1,14 @@ +### 请求 /system/mail-template/send-mail 接口 => 成功 +POST {{baseUrl}}/system/mail-template/send-mail +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenantId}} + +{ + "templateCode": "test_01", + "mail": "7685413@qq.com", + "templateParams": { + "key01": "value01", + "key02": "value02" + } +} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.class new file mode 100644 index 0000000000..321f52ee6b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.class new file mode 100644 index 0000000000..d96d1b4314 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.class new file mode 100644 index 0000000000..bcb1571082 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.class new file mode 100644 index 0000000000..c73ed79b6b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/account/MailAccountSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.class new file mode 100644 index 0000000000..e15c5056ba Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.class new file mode 100644 index 0000000000..3efab9cf49 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/log/MailLogRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.class new file mode 100644 index 0000000000..3064b0ec48 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplatePageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.class new file mode 100644 index 0000000000..795976870e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.class new file mode 100644 index 0000000000..a960ceeaf9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.class new file mode 100644 index 0000000000..12c1f7dd55 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSendReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.class new file mode 100644 index 0000000000..99b495ea21 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/vo/template/MailTemplateSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/NoticeController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/NoticeController.class new file mode 100644 index 0000000000..265aed3853 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/NoticeController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticePageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticePageReqVO.class new file mode 100644 index 0000000000..d67bd7d59b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticePageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.class new file mode 100644 index 0000000000..307b0e7b9a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeSaveReqVO.class new file mode 100644 index 0000000000..b20025e5e7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notice/vo/NoticeSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.class new file mode 100644 index 0000000000..d8f39c138b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.class new file mode 100644 index 0000000000..934bf9827d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.class new file mode 100644 index 0000000000..ab93a6dc59 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageMyPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.class new file mode 100644 index 0000000000..685115180b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.class new file mode 100644 index 0000000000..f324c68ee4 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.class new file mode 100644 index 0000000000..64d00c2e7b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.class new file mode 100644 index 0000000000..f86b1a3bca Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.class new file mode 100644 index 0000000000..ccf46b5417 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.class new file mode 100644 index 0000000000..1e42fd48a5 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.class new file mode 100644 index 0000000000..b55d22043f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.http new file mode 100644 index 0000000000..f8d7b8931d --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2ClientController.http @@ -0,0 +1,23 @@ +### 请求 /login 接口 => 成功 +POST {{baseUrl}}/system/oauth2-client/create +Content-Type: application/json +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + +{ + "id": "1", + "secret": "admin123", + "name": "芋道源码", + "logo": "https://www.iocoder.cn/images/favicon.ico", + "description": "我是描述", + "status": 0, + "accessTokenValiditySeconds": 180, + "refreshTokenValiditySeconds": 8640, + "redirectUris": ["https://www.iocoder.cn"], + "autoApprove": true, + "authorizedGrantTypes": ["password"], + "scopes": ["user_info"], + "authorities": ["system:user:query"], + "resource_ids": ["1024"], + "additionalInformation": "{}" +} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.class new file mode 100644 index 0000000000..0d497aa1e9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.http new file mode 100644 index 0000000000..cdcebbfb1c --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2OpenController.http @@ -0,0 +1,62 @@ +### 请求 /system/oauth2/authorize 接口 => 成功 +GET {{baseUrl}}/system/oauth2/authorize?clientId=default +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + +### 请求 /system/oauth2/authorize + token 接口 => 成功 +POST {{baseUrl}}/system/oauth2/authorize +Content-Type: application/x-www-form-urlencoded +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + +response_type=token&client_id=default&scope={"user.read": true}&redirect_uri=https://www.iocoder.cn&auto_approve=true + +### 请求 /system/oauth2/authorize + code 接口 => 成功 +POST {{baseUrl}}/system/oauth2/authorize +Content-Type: application/x-www-form-urlencoded +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + +response_type=code&client_id=default&scope={"user.read": true}&redirect_uri=https://www.iocoder.cn&auto_approve=false + +### 请求 /system/oauth2/token + code 接口 => 成功 +POST {{baseUrl}}/system/oauth2/token +Content-Type: application/x-www-form-urlencoded +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenantId}} + +grant_type=authorization_code&redirect_uri=https://www.iocoder.cn&code=189956c07a174588a97157eabef2f93a + +### 请求 /system/oauth2/token + password 接口 => 成功 +POST {{baseUrl}}/system/oauth2/token +Content-Type: application/x-www-form-urlencoded +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenantId}} + +grant_type=password&username=admin&password=admin123&scope=user.read + +### 请求 /system/oauth2/token + client_credentials 接口 => 成功 +POST {{baseUrl}}/system/oauth2/token +Content-Type: application/x-www-form-urlencoded +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenantId}} + +grant_type=client_credentials&scope=user.read + +### 请求 /system/oauth2/token + refresh_token 接口 => 成功 +POST {{baseUrl}}/system/oauth2/token +Content-Type: application/x-www-form-urlencoded +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenantId}} + +grant_type=refresh_token&refresh_token=00895465d6994f72a9d926ceeed0f588 + +### 请求 /system/oauth2/token + DELETE 接口 => 成功 +DELETE {{baseUrl}}/system/oauth2/token?token=ca8a188f464441d6949c51493a2b7596 +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenantId}} + +### 请求 /system/oauth2/check-token 接口 => 成功 +POST {{baseUrl}}/system/oauth2/check-token?token=620d307c5b4148df8a98dd6c6c547106 +Authorization: Basic ZGVmYXVsdDphZG1pbjEyMw== +tenant-id: {{adminTenantId}} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2TokenController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2TokenController.class new file mode 100644 index 0000000000..794d3992b9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2TokenController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.class new file mode 100644 index 0000000000..dd072b05d0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.http new file mode 100644 index 0000000000..9e76c7cdcc --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/OAuth2UserController.http @@ -0,0 +1,14 @@ +### 请求 /system/oauth2/user/get 接口 => 成功 +GET {{baseUrl}}/system/oauth2/user/get +Authorization: Bearer 47f9c74ec11041f193b777ebb95c3b0d +tenant-id: {{adminTenantId}} + +### 请求 /system/oauth2/user/update 接口 => 成功 +PUT {{baseUrl}}/system/oauth2/user/update +Content-Type: application/json +Authorization: Bearer 47f9c74ec11041f193b777ebb95c3b0d +tenant-id: {{adminTenantId}} + +{ + "nickname": "芋道源码" +} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.class new file mode 100644 index 0000000000..34274966ea Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.class new file mode 100644 index 0000000000..889e2856ee Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.class new file mode 100644 index 0000000000..0509e47464 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/client/OAuth2ClientSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.class new file mode 100644 index 0000000000..5fa311b722 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAccessTokenRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO$Client.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO$Client.class new file mode 100644 index 0000000000..94da0302c4 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO$Client.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.class new file mode 100644 index 0000000000..0dcb316262 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenAuthorizeInfoRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.class new file mode 100644 index 0000000000..acbc7a0f22 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/open/OAuth2OpenCheckTokenRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.class new file mode 100644 index 0000000000..6a064ce817 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.class new file mode 100644 index 0000000000..aff96cb93b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/token/OAuth2AccessTokenRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO$Dept.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO$Dept.class new file mode 100644 index 0000000000..29ddf1df5e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO$Dept.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO$Post.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO$Post.class new file mode 100644 index 0000000000..7acac1091a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO$Post.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.class new file mode 100644 index 0000000000..7e014e05c2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserInfoRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.class new file mode 100644 index 0000000000..6e7b54e536 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/oauth2/vo/user/OAuth2UserUpdateReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.class new file mode 100644 index 0000000000..8f17df15e9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.http new file mode 100644 index 0000000000..fbaff1e509 --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.http @@ -0,0 +1,4 @@ +### 请求 /menu/list 接口 => 成功 +GET {{baseUrl}}/system/menu/list +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.class new file mode 100644 index 0000000000..bf1ee0e4cb Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.class new file mode 100644 index 0000000000..4752c96ad7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.http new file mode 100644 index 0000000000..375180a344 --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.http @@ -0,0 +1,42 @@ +### /role/create 成功 +POST {{baseUrl}}/system/role/create +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenantId}} + +{ + "name": "测试角色", + "code": "test", + "sort": 0 +} + +### /role/update 成功 +POST {{baseUrl}}/system/role/update +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenantId}} + +{ + "id": 100, + "name": "测试角色", + "code": "test", + "sort": 10 +} +### /resource/delete 成功 +POST {{baseUrl}}/system/role/delete +Content-Type: application/x-www-form-urlencoded +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + +roleId=14 + +### /role/get 成功 +GET {{baseUrl}}/system/role/get?id=100 +Content-Type: application/x-www-form-urlencoded +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + +### /role/page 成功 +GET {{baseUrl}}/system/role/page?pageNo=1&pageSize=10 +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuListReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuListReqVO.class new file mode 100644 index 0000000000..7d28743584 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuListReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.class new file mode 100644 index 0000000000..5c26721aeb Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSaveVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSaveVO.class new file mode 100644 index 0000000000..db063b5552 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSaveVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.class new file mode 100644 index 0000000000..fc896677d3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/menu/MenuSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.class new file mode 100644 index 0000000000..4e9b15c8ce Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleDataScopeReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.class new file mode 100644 index 0000000000..619067c107 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleMenuReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.class new file mode 100644 index 0000000000..7f6298aa0b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.class new file mode 100644 index 0000000000..026dcaa8e2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RolePageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.class new file mode 100644 index 0000000000..4637c4358c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.class new file mode 100644 index 0000000000..e9dde76c90 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.class new file mode 100644 index 0000000000..ab5c0ac2e2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.class new file mode 100644 index 0000000000..e43b49ae1e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsChannelController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsChannelController.class new file mode 100644 index 0000000000..c884d07c99 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsChannelController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsLogController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsLogController.class new file mode 100644 index 0000000000..7eb43d335f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsLogController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.class new file mode 100644 index 0000000000..91530e9732 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.http new file mode 100644 index 0000000000..3b975c39dd --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.http @@ -0,0 +1,14 @@ +### 请求 /system/sms-template/send-sms 接口 => 成功 +POST {{baseUrl}}/system/sms-template/send-sms +Authorization: Bearer {{token}} +Content-Type: application/json +tenant-id: {{adminTenantId}} + +{ + "templateCode": "test_01", + "mobile": "15601691390", + "templateParams": { + "operation": "value01", + "code": "value02" + } +} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.class new file mode 100644 index 0000000000..fc974ba104 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.class new file mode 100644 index 0000000000..e19a09e185 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.class new file mode 100644 index 0000000000..44804b4b00 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.class new file mode 100644 index 0000000000..0a702bfbae Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.class new file mode 100644 index 0000000000..b992559d84 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.class new file mode 100644 index 0000000000..8123eea4f0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.class new file mode 100644 index 0000000000..f67d5f9191 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplatePageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.class new file mode 100644 index 0000000000..873dfde630 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.class new file mode 100644 index 0000000000..f63230ef05 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.class new file mode 100644 index 0000000000..8a48ea22d5 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateSendReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.class new file mode 100644 index 0000000000..0ef6ce80d4 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.http new file mode 100644 index 0000000000..9909b519ad --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialClientController.http @@ -0,0 +1,20 @@ +### 请求 /system/social-client/send-subscribe-message 接口 => 发送测试订阅消息 +POST {{baseUrl}}/system/social-client/send-subscribe-message +Authorization: Bearer {{token}} +Content-Type: application/json +#Authorization: Bearer test100 +tenant-id: {{adminTenantId}} + +{ + "userId": 247, + "userType": 1, + "socialType": 34, + "templateTitle": "充值成功通知", + "page": "", + "messages": { + "character_string1":"5616122165165", + "amount2":"1000.00", + "time3":"2024-01-01 10:10:10", + "phrase4": "充值成功" + } +} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialUserController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialUserController.class new file mode 100644 index 0000000000..04666e91ec Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialUserController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.class new file mode 100644 index 0000000000..cb4e45599a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientRespVO.class new file mode 100644 index 0000000000..6d16656fb4 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.class new file mode 100644 index 0000000000..04eff35cdc Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/client/SocialClientSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO$SocialUserBindReqVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO$SocialUserBindReqVOBuilder.class new file mode 100644 index 0000000000..3bd0e4a98b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO$SocialUserBindReqVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.class new file mode 100644 index 0000000000..ed533ad849 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserBindReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.class new file mode 100644 index 0000000000..98c9ca2731 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserRespVO.class new file mode 100644 index 0000000000..671bf44808 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO$SocialUserUnbindReqVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO$SocialUserUnbindReqVOBuilder.class new file mode 100644 index 0000000000..1147988262 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO$SocialUserUnbindReqVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.class new file mode 100644 index 0000000000..8451a846c9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/vo/user/SocialUserUnbindReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.class new file mode 100644 index 0000000000..ed5fc62ea2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.http new file mode 100644 index 0000000000..38aa594eaf --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.http @@ -0,0 +1,21 @@ +### 获取租户编号 /admin-api/system/get-id-by-name +GET {{baseUrl}}/system/tenant/get-id-by-name?name=芋道源码 + +### 创建租户 /admin-api/system/tenant/create +POST {{baseUrl}}/system/tenant/create +Content-Type: application/json +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} + +{ + "name": "芋道", + "contactName": "芋艿", + "contactMobile": "15601691300", + "status": 0, + "domain": "https://www.iocoder.cn", + "packageId": 110, + "expireTime": 1699545600000, + "accountCount": 20, + "username": "admin", + "password": "123321" +} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantPackageController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantPackageController.class new file mode 100644 index 0000000000..e776d83256 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantPackageController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.class new file mode 100644 index 0000000000..882c966ca0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackagePageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.class new file mode 100644 index 0000000000..75fd469177 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.class new file mode 100644 index 0000000000..bc6657add0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.class new file mode 100644 index 0000000000..2964469fbf Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/packages/TenantPackageSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.class new file mode 100644 index 0000000000..b3698edb73 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.class new file mode 100644 index 0000000000..73eb064f2f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.class new file mode 100644 index 0000000000..68847faa12 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.class new file mode 100644 index 0000000000..25c7356d86 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.http new file mode 100644 index 0000000000..0ca69150aa --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.http @@ -0,0 +1,11 @@ +### 请求 /system/user/page 接口 => 没有权限 +GET {{baseUrl}}/system/user/page?pageNo=1&pageSize=10 +Authorization: Bearer {{token}} +#Authorization: Bearer test100 +tenant-id: {{adminTenantId}} + +### 请求 /system/user/page 接口(测试访问别的租户) +GET {{baseUrl}}/system/user/page?pageNo=1&pageSize=10 +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} +visit-tenant-id: 122 \ No newline at end of file diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.class new file mode 100644 index 0000000000..e4a61d74aa Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.http b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.http new file mode 100644 index 0000000000..c94c2ad23b --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.http @@ -0,0 +1,4 @@ +### 请求 /system/user/profile/get 接口 => 没有权限 +GET {{baseUrl}}/system/user/profile/get +Authorization: Bearer {{token}} +tenant-id: {{adminTenantId}} diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.class new file mode 100644 index 0000000000..f489ebfec0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.class new file mode 100644 index 0000000000..18d9e1c452 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdatePasswordReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.class new file mode 100644 index 0000000000..d54a79bb6d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO$UserImportExcelVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO$UserImportExcelVOBuilder.class new file mode 100644 index 0000000000..452223abf9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO$UserImportExcelVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO.class new file mode 100644 index 0000000000..352427dfb5 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO$UserImportRespVOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO$UserImportRespVOBuilder.class new file mode 100644 index 0000000000..7f729c69ab Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO$UserImportRespVOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.class new file mode 100644 index 0000000000..784753982b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.class new file mode 100644 index 0000000000..89cb512541 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.class new file mode 100644 index 0000000000..319e6fde72 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.class new file mode 100644 index 0000000000..80b6f87972 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.class new file mode 100644 index 0000000000..daf9a0955c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSimpleRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.class new file mode 100644 index 0000000000..76d6918dbd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdatePasswordReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.class new file mode 100644 index 0000000000..77bc0cddc9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserUpdateStatusReqVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/AppDictDataController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/AppDictDataController.class new file mode 100644 index 0000000000..91301db067 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/AppDictDataController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/vo/AppDictDataRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/vo/AppDictDataRespVO.class new file mode 100644 index 0000000000..cc53b00488 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/vo/AppDictDataRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.class new file mode 100644 index 0000000000..e110926344 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/vo/AppAreaNodeRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/vo/AppAreaNodeRespVO.class new file mode 100644 index 0000000000..67a652bae6 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/vo/AppAreaNodeRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/AppTenantController.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/AppTenantController.class new file mode 100644 index 0000000000..3c5b691f6d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/AppTenantController.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/vo/AppTenantRespVO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/vo/AppTenantRespVO.class new file mode 100644 index 0000000000..4747671b5f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/app/tenant/vo/AppTenantRespVO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/package-info.class new file mode 100644 index 0000000000..97f3eadbf7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/controller/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.class new file mode 100644 index 0000000000..6ebf0611af Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.class new file mode 100644 index 0000000000..cbdcd0b439 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/oauth2/OAuth2OpenConvert.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/package-info.class new file mode 100644 index 0000000000..dd3393d2d8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/tenant/TenantConvert.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/tenant/TenantConvert.class new file mode 100644 index 0000000000..74f35b15ce Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/tenant/TenantConvert.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.class new file mode 100644 index 0000000000..03b1aa9dbf Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md new file mode 100644 index 0000000000..8153487b72 --- /dev/null +++ b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md @@ -0,0 +1 @@ + diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.class new file mode 100644 index 0000000000..5a64ddec75 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.class new file mode 100644 index 0000000000..aa91efb26b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/UserPostDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/UserPostDO.class new file mode 100644 index 0000000000..a45484ed6e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/UserPostDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.class new file mode 100644 index 0000000000..f8de7058c2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO$DictTypeDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO$DictTypeDOBuilder.class new file mode 100644 index 0000000000..818b02f4a2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO$DictTypeDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.class new file mode 100644 index 0000000000..7f565fc88f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.class new file mode 100644 index 0000000000..8ec7aa1054 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.class new file mode 100644 index 0000000000..a2f301d829 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.class new file mode 100644 index 0000000000..16c006fb3c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO$MailLogDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO$MailLogDOBuilder.class new file mode 100644 index 0000000000..cb3035f695 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO$MailLogDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.class new file mode 100644 index 0000000000..27bfa20f75 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.class new file mode 100644 index 0000000000..68d5624407 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.class new file mode 100644 index 0000000000..371a7115e2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO$NotifyMessageDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO$NotifyMessageDOBuilder.class new file mode 100644 index 0000000000..65db03eea2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO$NotifyMessageDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.class new file mode 100644 index 0000000000..1f6c66d00b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO$NotifyTemplateDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO$NotifyTemplateDOBuilder.class new file mode 100644 index 0000000000..58a35ab972 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO$NotifyTemplateDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.class new file mode 100644 index 0000000000..6a9c031c85 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.class new file mode 100644 index 0000000000..a38092cfc3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.class new file mode 100644 index 0000000000..01af8993cf Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ClientDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ClientDO.class new file mode 100644 index 0000000000..b0d87395a0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ClientDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.class new file mode 100644 index 0000000000..89c7168add Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.class new file mode 100644 index 0000000000..995afd50ba Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.class new file mode 100644 index 0000000000..96083c2957 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.class new file mode 100644 index 0000000000..cfacf6df87 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.class new file mode 100644 index 0000000000..6f000a052d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.class new file mode 100644 index 0000000000..f730f268ea Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.class new file mode 100644 index 0000000000..87a5650502 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO$SmsCodeDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO$SmsCodeDOBuilder.class new file mode 100644 index 0000000000..aa469a95b4 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO$SmsCodeDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.class new file mode 100644 index 0000000000..bbdc2eecfd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO$SmsLogDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO$SmsLogDOBuilder.class new file mode 100644 index 0000000000..b8473691d0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO$SmsLogDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.class new file mode 100644 index 0000000000..d62da84e9d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.class new file mode 100644 index 0000000000..c5fc97337d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO$SocialClientDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO$SocialClientDOBuilder.class new file mode 100644 index 0000000000..2cd6972fc7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO$SocialClientDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO.class new file mode 100644 index 0000000000..ae5a8fd869 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO$SocialUserBindDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO$SocialUserBindDOBuilder.class new file mode 100644 index 0000000000..35c65df7cf Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO$SocialUserBindDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.class new file mode 100644 index 0000000000..5317db8b16 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO$SocialUserDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO$SocialUserDOBuilder.class new file mode 100644 index 0000000000..a38c7197f8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO$SocialUserDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.class new file mode 100644 index 0000000000..d2a8bf8ef7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO$TenantDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO$TenantDOBuilder.class new file mode 100644 index 0000000000..a2854866c7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO$TenantDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.class new file mode 100644 index 0000000000..82ad274637 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO$TenantPackageDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO$TenantPackageDOBuilder.class new file mode 100644 index 0000000000..ecf0ac98fa Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO$TenantPackageDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.class new file mode 100644 index 0000000000..5350e65fee Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO$AdminUserDOBuilder.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO$AdminUserDOBuilder.class new file mode 100644 index 0000000000..0e131a79fd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO$AdminUserDOBuilder.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.class new file mode 100644 index 0000000000..09e94d05f3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.class new file mode 100644 index 0000000000..4a7d3ffa08 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/PostMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/PostMapper.class new file mode 100644 index 0000000000..fcda5c5928 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/PostMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/UserPostMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/UserPostMapper.class new file mode 100644 index 0000000000..0e9c0482e5 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/UserPostMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.class new file mode 100644 index 0000000000..ab40997a50 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.class new file mode 100644 index 0000000000..03b3d28c98 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.class new file mode 100644 index 0000000000..4273ac1918 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogMapper.class new file mode 100644 index 0000000000..47ac3b2a9b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailAccountMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailAccountMapper.class new file mode 100644 index 0000000000..503e0e18dd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailAccountMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailLogMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailLogMapper.class new file mode 100644 index 0000000000..06285be0a1 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailLogMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.class new file mode 100644 index 0000000000..35cf415479 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/mail/MailTemplateMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.class new file mode 100644 index 0000000000..3c7e60f58f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.class new file mode 100644 index 0000000000..c6bfd4d8ae Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.class new file mode 100644 index 0000000000..fc8d3376bd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.class new file mode 100644 index 0000000000..5c4fdcd840 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.class new file mode 100644 index 0000000000..9b81049a29 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ApproveMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ClientMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ClientMapper.class new file mode 100644 index 0000000000..f13e22b522 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2ClientMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2CodeMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2CodeMapper.class new file mode 100644 index 0000000000..e070aacb02 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2CodeMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.class new file mode 100644 index 0000000000..652f483144 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2RefreshTokenMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/package-info.class new file mode 100644 index 0000000000..107a30abcc Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.class new file mode 100644 index 0000000000..7265f13507 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.class new file mode 100644 index 0000000000..868358f0d9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.class new file mode 100644 index 0000000000..a2fbc7a529 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.class new file mode 100644 index 0000000000..49fbd799ce Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.class new file mode 100644 index 0000000000..d79df027c1 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsCodeMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsCodeMapper.class new file mode 100644 index 0000000000..88941ab251 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsCodeMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.class new file mode 100644 index 0000000000..d0a2f2b321 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.class new file mode 100644 index 0000000000..2351d4e678 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialClientMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialClientMapper.class new file mode 100644 index 0000000000..522c8ac3be Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialClientMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserBindMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserBindMapper.class new file mode 100644 index 0000000000..4dbdaf7a17 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserBindMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserMapper.class new file mode 100644 index 0000000000..d1aa03d596 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SocialUserMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.class new file mode 100644 index 0000000000..50944716d3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantPackageMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantPackageMapper.class new file mode 100644 index 0000000000..c0878ddfe9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/TenantPackageMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.class new file mode 100644 index 0000000000..26970213a7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.class new file mode 100644 index 0000000000..cc321ab47e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.class new file mode 100644 index 0000000000..674453ba86 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/dal/redis/oauth2/OAuth2AccessTokenRedisDAO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.class new file mode 100644 index 0000000000..d322e36e79 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.class new file mode 100644 index 0000000000..04664d8664 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.class new file mode 100644 index 0000000000..60c4d9782a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/LogRecordConstants.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/common/SexEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/common/SexEnum.class new file mode 100644 index 0000000000..485af736e1 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/common/SexEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginLogTypeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginLogTypeEnum.class new file mode 100644 index 0000000000..a4a2e54fbd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginLogTypeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginResultEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginResultEnum.class new file mode 100644 index 0000000000..950f5bbdef Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginResultEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/mail/MailSendStatusEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/mail/MailSendStatusEnum.class new file mode 100644 index 0000000000..35d9c2a2f0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/mail/MailSendStatusEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/notice/NoticeTypeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/notice/NoticeTypeEnum.class new file mode 100644 index 0000000000..2a7bc2cbd8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/notice/NoticeTypeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/notify/NotifyTemplateTypeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/notify/NotifyTemplateTypeEnum.class new file mode 100644 index 0000000000..9496254853 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/notify/NotifyTemplateTypeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2ClientConstants.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2ClientConstants.class new file mode 100644 index 0000000000..90cc024d90 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2ClientConstants.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2GrantTypeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2GrantTypeEnum.class new file mode 100644 index 0000000000..460de2b4ed Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/oauth2/OAuth2GrantTypeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/DataScopeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/DataScopeEnum.class new file mode 100644 index 0000000000..e33e2365ff Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/DataScopeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/MenuTypeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/MenuTypeEnum.class new file mode 100644 index 0000000000..cc0add977d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/MenuTypeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleCodeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleCodeEnum.class new file mode 100644 index 0000000000..e8bab07be4 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleCodeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleTypeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleTypeEnum.class new file mode 100644 index 0000000000..50c4b7c98d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/permission/RoleTypeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsReceiveStatusEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsReceiveStatusEnum.class new file mode 100644 index 0000000000..db5346184e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsReceiveStatusEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.class new file mode 100644 index 0000000000..b244a939f6 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSendStatusEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSendStatusEnum.class new file mode 100644 index 0000000000..9049c4dc83 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSendStatusEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsTemplateTypeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsTemplateTypeEnum.class new file mode 100644 index 0000000000..7036177e26 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsTemplateTypeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/social/SocialTypeEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/social/SocialTypeEnum.class new file mode 100644 index 0000000000..b06aa1edf6 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/enums/social/SocialTypeEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/config/YudaoCaptchaConfiguration.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/config/YudaoCaptchaConfiguration.class new file mode 100644 index 0000000000..3482fca632 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/config/YudaoCaptchaConfiguration.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/core/PictureWordCaptchaServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/core/PictureWordCaptchaServiceImpl.class new file mode 100644 index 0000000000..8d28ebf5cc Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/core/PictureWordCaptchaServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/core/RedisCaptchaServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/core/RedisCaptchaServiceImpl.class new file mode 100644 index 0000000000..ccc8e1c96e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/core/RedisCaptchaServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/package-info.class new file mode 100644 index 0000000000..c85098a99c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/captcha/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/config/DataPermissionConfiguration.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/config/DataPermissionConfiguration.class new file mode 100644 index 0000000000..ba6b384a6b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/config/DataPermissionConfiguration.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/package-info.class new file mode 100644 index 0000000000..078438f5d5 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/config/YudaoJustAuthConfiguration.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/config/YudaoJustAuthConfiguration.class new file mode 100644 index 0000000000..5251c849b7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/config/YudaoJustAuthConfiguration.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/core/AuthRequestFactory.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/core/AuthRequestFactory.class new file mode 100644 index 0000000000..aa016a960a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/core/AuthRequestFactory.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/package-info.class new file mode 100644 index 0000000000..b2e23b6e09 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/justauth/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AdminUserParseFunction.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AdminUserParseFunction.class new file mode 100644 index 0000000000..5f13135f65 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AdminUserParseFunction.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AreaParseFunction.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AreaParseFunction.class new file mode 100644 index 0000000000..63424da446 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/AreaParseFunction.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/BooleanParseFunction.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/BooleanParseFunction.class new file mode 100644 index 0000000000..1b110b2f69 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/BooleanParseFunction.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/DeptParseFunction.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/DeptParseFunction.class new file mode 100644 index 0000000000..ffca1d9ac0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/DeptParseFunction.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/PostParseFunction.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/PostParseFunction.class new file mode 100644 index 0000000000..c821d62803 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/PostParseFunction.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/SexParseFunction.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/SexParseFunction.class new file mode 100644 index 0000000000..a6b2666f39 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/SexParseFunction.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/package-info.class new file mode 100644 index 0000000000..95efc1abfb Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/package-info.class new file mode 100644 index 0000000000..f0b7ebb124 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsCodeProperties.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsCodeProperties.class new file mode 100644 index 0000000000..c94195f891 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsCodeProperties.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsConfiguration.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsConfiguration.class new file mode 100644 index 0000000000..93c5100bc8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/config/SmsConfiguration.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClient.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClient.class new file mode 100644 index 0000000000..093a039bb2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClient.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClientFactory.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClientFactory.class new file mode 100644 index 0000000000..ea84b9ba08 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/SmsClientFactory.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.class new file mode 100644 index 0000000000..c798ae2f3e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsReceiveRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsSendRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsSendRespDTO.class new file mode 100644 index 0000000000..72b526b19d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsSendRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.class new file mode 100644 index 0000000000..69754d610b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/dto/SmsTemplateRespDTO.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AbstractSmsClient.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AbstractSmsClient.class new file mode 100644 index 0000000000..111d7ee733 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AbstractSmsClient.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AliyunSmsClient.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AliyunSmsClient.class new file mode 100644 index 0000000000..013ff682e4 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/AliyunSmsClient.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.class new file mode 100644 index 0000000000..4f5571dca0 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/DebugDingTalkSmsClient.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/HuaweiSmsClient.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/HuaweiSmsClient.class new file mode 100644 index 0000000000..431e5e2010 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/HuaweiSmsClient.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/QiniuSmsClient.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/QiniuSmsClient.class new file mode 100644 index 0000000000..99a7a5bc0c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/QiniuSmsClient.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.class new file mode 100644 index 0000000000..caa20a394d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientFactoryImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/TencentSmsClient.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/TencentSmsClient.class new file mode 100644 index 0000000000..a226c0378e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/TencentSmsClient.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsChannelEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsChannelEnum.class new file mode 100644 index 0000000000..e22088d921 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsChannelEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.class new file mode 100644 index 0000000000..4bace7476d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/enums/SmsTemplateAuditStatusEnum.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/property/SmsChannelProperties.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/property/SmsChannelProperties.class new file mode 100644 index 0000000000..2b419e68c8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/sms/core/property/SmsChannelProperties.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/web/config/SystemWebConfiguration.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/web/config/SystemWebConfiguration.class new file mode 100644 index 0000000000..fac21f0d95 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/web/config/SystemWebConfiguration.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/web/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/web/package-info.class new file mode 100644 index 0000000000..fcf3325e69 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/framework/web/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/job/DemoJob.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/job/DemoJob.class new file mode 100644 index 0000000000..1ca319bf87 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/job/DemoJob.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/job/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/job/package-info.class new file mode 100644 index 0000000000..0291f860b6 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/job/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/mail/MailSendConsumer.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/mail/MailSendConsumer.class new file mode 100644 index 0000000000..74ab143832 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/mail/MailSendConsumer.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsSendConsumer.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsSendConsumer.class new file mode 100644 index 0000000000..e4ba333547 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsSendConsumer.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/message/mail/MailSendMessage.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/message/mail/MailSendMessage.class new file mode 100644 index 0000000000..305058f49a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/message/mail/MailSendMessage.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/message/sms/SmsSendMessage.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/message/sms/SmsSendMessage.class new file mode 100644 index 0000000000..1299bbbbb9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/message/sms/SmsSendMessage.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/producer/mail/MailProducer.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/producer/mail/MailProducer.class new file mode 100644 index 0000000000..a473657c21 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/producer/mail/MailProducer.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sms/SmsProducer.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sms/SmsProducer.class new file mode 100644 index 0000000000..379ed2c829 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sms/SmsProducer.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/package-info.class new file mode 100644 index 0000000000..3047ce8a72 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.class new file mode 100644 index 0000000000..4d08daf3be Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.class new file mode 100644 index 0000000000..0864b44fee Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.class new file mode 100644 index 0000000000..4b0e2a50f3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.class new file mode 100644 index 0000000000..9899285f3e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.class new file mode 100644 index 0000000000..e4739ca7f8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.class new file mode 100644 index 0000000000..737bedfc74 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.class new file mode 100644 index 0000000000..13d2ec2764 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.class new file mode 100644 index 0000000000..31cbdefcff Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeService.class new file mode 100644 index 0000000000..ba5cf28eac Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.class new file mode 100644 index 0000000000..33f78b6bc3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogService.class new file mode 100644 index 0000000000..dd8465cc8a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImpl.class new file mode 100644 index 0000000000..8462d17097 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogService.class new file mode 100644 index 0000000000..073ee1b904 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.class new file mode 100644 index 0000000000..4b6e4ecd07 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.class new file mode 100644 index 0000000000..41c96134ef Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImpl.class new file mode 100644 index 0000000000..2adfaf7ea3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailAccountServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.class new file mode 100644 index 0000000000..0b89c00c01 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.class new file mode 100644 index 0000000000..f72fef6aee Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailLogServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendService.class new file mode 100644 index 0000000000..cfabe54624 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.class new file mode 100644 index 0000000000..bd5614d6e7 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailSendServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.class new file mode 100644 index 0000000000..8b8a0ab7fa Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.class new file mode 100644 index 0000000000..9fb2b1ec78 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/mail/MailTemplateServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/MemberService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/MemberService.class new file mode 100644 index 0000000000..0fabd50093 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/MemberService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/MemberServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/MemberServiceImpl.class new file mode 100644 index 0000000000..80f5003427 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/MemberServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/package-info.class new file mode 100644 index 0000000000..a7071e487b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/member/package-info.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeService.class new file mode 100644 index 0000000000..e43967f67a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.class new file mode 100644 index 0000000000..45560ea09f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.class new file mode 100644 index 0000000000..c0929e7e15 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.class new file mode 100644 index 0000000000..62cf5115e3 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.class new file mode 100644 index 0000000000..9891314647 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.class new file mode 100644 index 0000000000..7bbd57feb1 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.class new file mode 100644 index 0000000000..fa81c1d62a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.class new file mode 100644 index 0000000000..0ced858338 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveService.class new file mode 100644 index 0000000000..dce0f51393 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.class new file mode 100644 index 0000000000..c60f5906f5 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ApproveServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientService.class new file mode 100644 index 0000000000..3620f07e19 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.class new file mode 100644 index 0000000000..8f969ca95e Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2ClientServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeService.class new file mode 100644 index 0000000000..66d46ce3f6 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.class new file mode 100644 index 0000000000..0d0144a39d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2CodeServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.class new file mode 100644 index 0000000000..0b826168c1 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantServiceImpl.class new file mode 100644 index 0000000000..a73582643d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2GrantServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.class new file mode 100644 index 0000000000..f566ff7bcd Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.class new file mode 100644 index 0000000000..4ac2f26a99 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuService.class new file mode 100644 index 0000000000..b5c7cc5908 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.class new file mode 100644 index 0000000000..e240d710b8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.class new file mode 100644 index 0000000000..1942cd4778 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.class new file mode 100644 index 0000000000..daa714984b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.class new file mode 100644 index 0000000000..3ee1cb9593 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.class new file mode 100644 index 0000000000..349478d8bb Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelService.class new file mode 100644 index 0000000000..42842f19aa Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.class new file mode 100644 index 0000000000..193959ff6c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeService.class new file mode 100644 index 0000000000..6b070e2fb4 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.class new file mode 100644 index 0000000000..d197e9bac2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.class new file mode 100644 index 0000000000..f74c50f073 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.class new file mode 100644 index 0000000000..5eb8b59518 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendService.class new file mode 100644 index 0000000000..8a9b8e2eba Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.class new file mode 100644 index 0000000000..2b4f539b46 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.class new file mode 100644 index 0000000000..3562fadb65 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.class new file mode 100644 index 0000000000..4617e96d04 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.class new file mode 100644 index 0000000000..ed81495e00 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.class new file mode 100644 index 0000000000..a2dd47cdc2 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialClientServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserService.class new file mode 100644 index 0000000000..43381897bb Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.class new file mode 100644 index 0000000000..846535f31b Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageService.class new file mode 100644 index 0000000000..85a813f9ef Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImpl.class new file mode 100644 index 0000000000..c3c52bf6ac Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.class new file mode 100644 index 0000000000..8b73fb294d Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.class new file mode 100644 index 0000000000..b55fd1ee3a Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantInfoHandler.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantInfoHandler.class new file mode 100644 index 0000000000..b938a54c8f Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantInfoHandler.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantMenuHandler.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantMenuHandler.class new file mode 100644 index 0000000000..be5f1bbe1c Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/tenant/handler/TenantMenuHandler.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.class new file mode 100644 index 0000000000..41b2c675e9 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.class new file mode 100644 index 0000000000..148d20a3b8 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.class new file mode 100644 index 0000000000..6816439240 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/util/oauth2/OAuth2Utils.class differ diff --git a/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/util/package-info.class b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/util/package-info.class new file mode 100644 index 0000000000..7b7eb18a42 Binary files /dev/null and b/yudao-module-system/bin/src/main/java/cn/iocoder/yudao/module/system/util/package-info.class differ diff --git a/yudao-module-system/bin/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaCacheService b/yudao-module-system/bin/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaCacheService new file mode 100644 index 0000000000..fa9d5b2820 --- /dev/null +++ b/yudao-module-system/bin/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaCacheService @@ -0,0 +1 @@ +cn.iocoder.yudao.module.system.framework.captcha.core.RedisCaptchaServiceImpl \ No newline at end of file diff --git a/yudao-module-system/bin/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaService b/yudao-module-system/bin/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaService new file mode 100644 index 0000000000..80adf6ddb6 --- /dev/null +++ b/yudao-module-system/bin/src/main/resources/META-INF/services/com.anji.captcha.service.CaptchaService @@ -0,0 +1 @@ +cn.iocoder.yudao.module.system.framework.captcha.core.PictureWordCaptchaServiceImpl \ No newline at end of file diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg1.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg1.png new file mode 100644 index 0000000000..c48145769d Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg1.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg2.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg2.png new file mode 100644 index 0000000000..bf8fb38ff3 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg2.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg3.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg3.png new file mode 100644 index 0000000000..f871d3d128 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg3.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg4.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg4.png new file mode 100644 index 0000000000..2e3d871667 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg4.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg5.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg5.png new file mode 100644 index 0000000000..fe383b720d Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg5.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg6.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg6.png new file mode 100644 index 0000000000..5024ceb229 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg6.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg7.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg7.png new file mode 100644 index 0000000000..efe76f8de5 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg7.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg8.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg8.png new file mode 100644 index 0000000000..2727aa3241 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg8.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg9.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg9.png new file mode 100644 index 0000000000..4463aa2fbd Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/original/bg9.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/1.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/1.png new file mode 100644 index 0000000000..ef11324711 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/1.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/10.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/10.png new file mode 100644 index 0000000000..297e44cf46 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/10.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/11.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/11.png new file mode 100644 index 0000000000..d9b1da8d74 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/11.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/12.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/12.png new file mode 100644 index 0000000000..07e7313b4f Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/12.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/13.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/13.png new file mode 100644 index 0000000000..82c3dd969a Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/13.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/14.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/14.png new file mode 100644 index 0000000000..0b9a866151 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/14.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/15.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/15.png new file mode 100644 index 0000000000..86b0d1cf1d Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/15.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/16.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/16.png new file mode 100644 index 0000000000..e90a6e292f Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/16.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/17.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/17.png new file mode 100644 index 0000000000..a82cbc7c45 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/17.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/18.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/18.png new file mode 100644 index 0000000000..d3f3cfd034 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/18.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/19.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/19.png new file mode 100644 index 0000000000..eb2855bd8c Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/19.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/8.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/8.png new file mode 100644 index 0000000000..3cb5ce1c82 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/8.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/9.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/9.png new file mode 100644 index 0000000000..384d354157 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/11/9.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/2.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/2.png new file mode 100644 index 0000000000..baf3f06d77 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/2.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/3.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/3.png new file mode 100644 index 0000000000..ccaf617231 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/3.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/4.png b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/4.png new file mode 100644 index 0000000000..7dab162230 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/jigsaw/slidingBlock/4.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg1.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg1.png new file mode 100644 index 0000000000..14e73454a6 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg1.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg10.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg10.png new file mode 100644 index 0000000000..1ea1d6d598 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg10.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg2.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg2.png new file mode 100644 index 0000000000..0edb329375 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg2.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg3.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg3.png new file mode 100644 index 0000000000..91679960f6 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg3.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg4.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg4.png new file mode 100644 index 0000000000..e8e8e6c0cf Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg4.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg5.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg5.png new file mode 100644 index 0000000000..66a3181e7e Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg5.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg6.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg6.png new file mode 100644 index 0000000000..9b0f5d8c15 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg6.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg7.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg7.png new file mode 100644 index 0000000000..db41c74a01 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg7.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg8.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg8.png new file mode 100644 index 0000000000..349681306a Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg8.png differ diff --git a/yudao-module-system/bin/src/main/resources/images/pic-click/bg9.png b/yudao-module-system/bin/src/main/resources/images/pic-click/bg9.png new file mode 100644 index 0000000000..4e7b477529 Binary files /dev/null and b/yudao-module-system/bin/src/main/resources/images/pic-click/bg9.png differ diff --git a/yudao-server/bin/Dockerfile b/yudao-server/bin/Dockerfile new file mode 100644 index 0000000000..17e4be56e2 --- /dev/null +++ b/yudao-server/bin/Dockerfile @@ -0,0 +1,23 @@ +## AdoptOpenJDK 停止发布 OpenJDK 二进制,而 Eclipse Temurin 是它的延伸,提供更好的稳定性 +## 感谢复旦核博士的建议!灰子哥,牛皮! +FROM eclipse-temurin:21-jre + +## 创建目录,并使用它作为工作目录 +RUN mkdir -p /yudao-server +WORKDIR /yudao-server +## 将后端项目的 Jar 文件,复制到镜像中 +COPY ./target/yudao-server.jar app.jar + +## 设置 TZ 时区 +ENV TZ=Asia/Shanghai +## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖 +ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom" + +## 应用参数 +ENV ARGS="" + +## 暴露后端项目的 48080 端口 +EXPOSE 48080 + +## 启动后端项目 +CMD java ${JAVA_OPTS} -jar app.jar $ARGS diff --git a/yudao-server/bin/pom.xml b/yudao-server/bin/pom.xml new file mode 100644 index 0000000000..7d03bc6372 --- /dev/null +++ b/yudao-server/bin/pom.xml @@ -0,0 +1,160 @@ + + + + cn.iocoder.boot + yudao + ${revision} + + 4.0.0 + + yudao-server + jar + + ${project.artifactId} + + 后端 Server 的主项目,通过引入需要 yudao-module-xxx 的依赖, + 从而实现提供 RESTful API 给 yudao-ui-admin、yudao-ui-user 等前端项目。 + 本质上来说,它就是个空壳(容器)! + + https://github.com/YunaiV/ruoyi-vue-pro + + + + cn.iocoder.boot + yudao-module-system + ${revision} + + + cn.iocoder.boot + yudao-module-infra + ${revision} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cn.iocoder.boot + yudao-module-prison + ${revision} + + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + cn.iocoder.boot + yudao-spring-boot-starter-protection + + + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + + + repackage + + + + + + + + diff --git a/yudao-server/bin/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.class b/yudao-server/bin/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.class new file mode 100644 index 0000000000..96d6b0c11c Binary files /dev/null and b/yudao-server/bin/src/main/java/cn/iocoder/yudao/server/YudaoServerApplication.class differ diff --git a/yudao-server/bin/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.class b/yudao-server/bin/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.class new file mode 100644 index 0000000000..61877c08c9 Binary files /dev/null and b/yudao-server/bin/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.class differ diff --git a/yudao-server/bin/src/main/resources/application-dev.yaml b/yudao-server/bin/src/main/resources/application-dev.yaml new file mode 100644 index 0000000000..3668b7c4e7 --- /dev/null +++ b/yudao-server/bin/src/main/resources/application-dev.yaml @@ -0,0 +1,212 @@ +server: + port: 48080 + +--- #################### 数据库相关配置 #################### + +spring: + autoconfigure: + # noinspection SpringBootApplicationYaml + exclude: + - org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantVectorStoreAutoConfiguration # 禁用 AI 模块的 Qdrant,手动创建 + - org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusVectorStoreAutoConfiguration # 禁用 AI 模块的 Milvus,手动创建 + # 数据源配置项 + datasource: + druid: # Druid 【监控】相关的全局配置 + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + allow: # 设置白名单,不填则允许所有访问 + url-pattern: /druid/* + login-username: # 控制台管理用户名和密码 + login-password: + filter: + stat: + enabled: true + log-slow-sql: true # 慢 SQL 记录 + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: # 多数据源配置 + druid: # Druid 【连接池】相关的全局配置 + initial-size: 5 # 初始连接数 + min-idle: 10 # 最小连接池数量 + max-active: 20 # 最大连接池数量 + max-wait: 60000 # 配置获取连接等待超时的时间,单位:毫秒(1 分钟) + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒(1 分钟) + min-evictable-idle-time-millis: 600000 # 配置一个连接在池中最小生存的时间,单位:毫秒(10 分钟) + max-evictable-idle-time-millis: 1800000 # 配置一个连接在池中最大生存的时间,单位:毫秒(30 分钟) + validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true # 是否开启 PreparedStatement 缓存 + max-pool-prepared-statement-per-connection-size: 20 # 每个连接缓存的 PreparedStatement 数量 + primary: master + datasource: + master: + url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: 123456 + slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改 + lazy: true # 开启懒加载,保证启动速度 + url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + username: root + password: 123456 + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + data: + redis: + host: 400-infra.server.iocoder.cn # 地址 + port: 6379 # 端口 + database: 1 # 数据库索引 +# password: 123456 # 密码,建议生产环境开启 + +--- #################### 定时任务相关配置 #################### + +# Quartz 配置项,对应 QuartzProperties 配置类 +spring: + quartz: + auto-startup: true # 测试环境,需要开启 Job + scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName + job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。 + wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true + properties: # 添加 Quartz Scheduler 附加属性,更多可以看 http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/configuration.html 文档 + org: + quartz: + # Scheduler 相关配置 + scheduler: + instanceName: schedulerName + instanceId: AUTO # 自动生成 instance ID + # JobStore 相关配置 + jobStore: + # JobStore 实现类。可见博客:https://blog.csdn.net/weixin_42458219/article/details/122247162 + class: org.springframework.scheduling.quartz.LocalDataSourceJobStore + isClustered: true # 是集群模式 + clusterCheckinInterval: 15000 # 集群检查频率,单位:毫秒。默认为 15000,即 15 秒 + misfireThreshold: 60000 # misfire 阀值,单位:毫秒。 + # 线程池相关配置 + threadPool: + threadCount: 25 # 线程池大小。默认为 10 。 + threadPriority: 5 # 线程优先级 + class: org.quartz.simpl.SimpleThreadPool # 线程池类型 + jdbc: # 使用 JDBC 的 JobStore 的时候,JDBC 的配置 + initialize-schema: NEVER # 是否自动使用 SQL 初始化 Quartz 表结构。这里设置成 never ,我们手动创建表结构。 + +--- #################### 消息队列相关 #################### + +# rocketmq 配置项,对应 RocketMQProperties 配置类 +rocketmq: + name-server: 127.0.0.1:9876 # RocketMQ Namesrv + +spring: + # RabbitMQ 配置项,对应 RabbitProperties 配置类 + rabbitmq: + host: 127.0.0.1 # RabbitMQ 服务的地址 + port: 5672 # RabbitMQ 服务的端口 + username: guest # RabbitMQ 服务的账号 + password: guest # RabbitMQ 服务的密码 + # Kafka 配置项,对应 KafkaProperties 配置类 + kafka: + bootstrap-servers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔 + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项 +lock4j: + acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 + expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 + +--- #################### 监控相关配置 #################### + +# Actuator 监控端点的配置项 +management: + endpoints: + web: + base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator + exposure: + include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 + +# Spring Boot Admin 配置项 +spring: + boot: + admin: + # Spring Boot Admin Client 客户端的相关配置 + client: + url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path} # 设置 Spring Boot Admin Server 地址 + instance: + service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME] + username: admin + password: admin + # Spring Boot Admin Server 服务端的相关配置 + context-path: /admin # 配置 Spring + +# 日志文件配置 +logging: + file: + name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径 + +--- #################### 微信公众号相关配置 #################### +wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 + mp: + # 公众号配置(必填) + app-id: wx041349c6f39b268b + secret: 5abee519483bc9f8cb37ce280e814bd0 + # 存储配置,解决 AccessToken 的跨节点的共享 + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wx # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 + miniapp: # 小程序配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md 文档 + appid: wx63c280fe3248a3e7 + secret: 6f270509224a7ae1296bbf1c8cb97aed + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wa # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 + +--- #################### 芋道相关配置 #################### + +# 芋道配置项,设置当前项目所有自定义的配置 +yudao: + pay: + order-notify-url: http://yunai.natapp1.cc/admin-api/pay/notify/order # 支付渠道的【支付】回调地址 + refund-notify-url: http://yunai.natapp1.cc/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址 + transfer-notify-url: https://yunai.natapp1.cc/admin-api/pay/notify/transfer # 支付渠道的【转账】回调地址 + demo: false # 开启演示模式 + tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc + +justauth: + enabled: true + type: + DINGTALK: # 钉钉 + client-id: dingvrnreaje3yqvzhxg + client-secret: i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI + ignore-check-redirect-uri: true + WECHAT_ENTERPRISE: # 企业微信 + client-id: wwd411c69a39ad2e54 + client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw + agent-id: 1000004 + ignore-check-redirect-uri: true + # noinspection SpringBootApplicationYaml + WECHAT_MINI_PROGRAM: # 微信小程序 + client-id: ${wx.miniapp.appid} + client-secret: ${wx.miniapp.secret} + ignore-check-redirect-uri: true + ignore-check-state: true # 微信小程序,不会使用到 state,所以不进行校验 + WECHAT_MP: # 微信公众号 + client-id: ${wx.mp.app-id} + client-secret: ${wx.mp.secret} + ignore-check-redirect-uri: true + ALIPAY: # 支付宝小程序 + client-id: xx + client-secret: xx + alipay-public-key: xx + ignore-check-redirect-uri: true + ignore-check-state: true + cache: + type: REDIS + prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: + timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 \ No newline at end of file diff --git a/yudao-server/bin/src/main/resources/application-local.yaml b/yudao-server/bin/src/main/resources/application-local.yaml new file mode 100644 index 0000000000..2ff9241ce8 --- /dev/null +++ b/yudao-server/bin/src/main/resources/application-local.yaml @@ -0,0 +1,298 @@ +server: + port: 48080 + +--- #################### 数据库相关配置 #################### +spring: + autoconfigure: + # noinspection SpringBootApplicationYaml + exclude: + - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置 + - org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantVectorStoreAutoConfiguration # 禁用 AI 模块的 Qdrant,手动创建 + - org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusVectorStoreAutoConfiguration # 禁用 AI 模块的 Milvus,手动创建 + # 数据源配置项 + datasource: + druid: # Druid 【监控】相关的全局配置 + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + allow: 127.0.0.1 # 设置白名单,仅允许本地访问 + url-pattern: /druid/* + login-username: ${DRUID_USERNAME:admin} # 控制台管理用户名,建议通过环境变量配置 + login-password: ${DRUID_PASSWORD:admin123} # 控制台管理密码,建议通过环境变量配置 + filter: + stat: + enabled: true + log-slow-sql: true # 慢 SQL 记录 + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: # 多数据源配置 + druid: # Druid 【连接池】相关的全局配置 + initial-size: 1 # 初始连接数 + min-idle: 1 # 最小连接池数量 + max-active: 20 # 最大连接池数量 + max-wait: 60000 # 配置获取连接等待超时的时间,单位:毫秒(1 分钟) + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒(1 分钟) + min-evictable-idle-time-millis: 600000 # 配置一个连接在池中最小生存的时间,单位:毫秒(10 分钟) + max-evictable-idle-time-millis: 1800000 # 配置一个连接在池中最大生存的时间,单位:毫秒(30 分钟) + validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true # 是否开启 PreparedStatement 缓存 + max-pool-prepared-statement-per-connection-size: 20 # 每个连接缓存的 PreparedStatement 数量 + primary: master + datasource: + master: + url: jdbc:mysql://192.168.10.130:3306/xlcp_dev?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + # url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=true&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true # MySQL Connector/J 5.X 连接的示例 + # url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro # PostgreSQL 连接的示例 + # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 + # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=ruoyi-vue-pro;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true;useUnicode=true;characterEncoding=utf-8 # SQLServer 连接的示例 + # url: jdbc:dm://127.0.0.1:5236?schema=RUOYI_VUE_PRO # DM 连接的示例 + # url: jdbc:kingbase8://127.0.0.1:54321/test # 人大金仓 KingbaseES 连接的示例 + # url: jdbc:postgresql://127.0.0.1:5432/postgres # OpenGauss 连接的示例 + username: ${DB_USERNAME:xlcp_dev} # 数据库用户名,建议通过环境变量配置 + password: ${DB_PASSWORD:xlcp_dev} # 数据库密码,建议通过环境变量配置 + # username: sa # SQL Server 连接的示例 + # password: Yudao@2024 # SQL Server 连接的示例 + # username: SYSDBA # DM 连接的示例 + # password: SYSDBA001 # DM 连接的示例 + # username: root # OpenGauss 连接的示例 + # password: Yudao@2024 # OpenGauss 连接的示例 + slave: # 模拟从库,可根据自己需要修改 + lazy: true # 开启懒加载,保证启动速度 + url: jdbc:mysql://${DB_HOST_SLAVE:127.0.0.1}:${DB_PORT_SLAVE:3306}/${DB_NAME_SLAVE:ruoyi-vue-pro}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true + username: ${DB_USERNAME_SLAVE:xlcp_dev} + password: ${DB_PASSWORD_SLAVE:xlcp_dev} +# tdengine: # IoT 数据库(需要 IoT 物联网再开启噢!) +# url: jdbc:TAOS-WS://127.0.0.1:6041/ruoyi_vue_pro +# driver-class-name: com.taosdata.jdbc.ws.WebSocketDriver +# username: root +# password: taosdata +# druid: +# validation-query: SELECT SERVER_STATUS() # TDengine 数据源的有效性检查 SQL + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + data: + redis: + host: 192.168.10.126 # 地址 + port: 46379 # 端口 + database: 0 # 数据库索引 + password: redis_Dbdb2F # 密码 + +--- #################### 定时任务相关配置 #################### + +# Quartz 配置项,对应 QuartzProperties 配置类 +spring: + quartz: + auto-startup: true # 本地开发环境,尽量不要开启 Job + scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName + job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。 + wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true + properties: # 添加 Quartz Scheduler 附加属性,更多可以看 http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/configuration.html 文档 + org: + quartz: + # Scheduler 相关配置 + scheduler: + instanceName: schedulerName + instanceId: AUTO # 自动生成 instance ID + # JobStore 相关配置 + jobStore: + # JobStore 实现类。可见博客:https://blog.csdn.net/weixin_42458219/article/details/122247162 + class: org.springframework.scheduling.quartz.LocalDataSourceJobStore + isClustered: true # 是集群模式 + clusterCheckinInterval: 15000 # 集群检查频率,单位:毫秒。默认为 15000,即 15 秒 + misfireThreshold: 60000 # misfire 阀值,单位:毫秒。 + # 线程池相关配置 + threadPool: + threadCount: 25 # 线程池大小。默认为 10 。 + threadPriority: 5 # 线程优先级 + class: org.quartz.simpl.SimpleThreadPool # 线程池类型 + jdbc: # 使用 JDBC 的 JobStore 的时候,JDBC 的配置 + initialize-schema: NEVER # 是否自动使用 SQL 初始化 Quartz 表结构。这里设置成 never ,我们手动创建表结构。 + +--- #################### 消息队列相关 #################### + +# rocketmq 配置项,对应 RocketMQProperties 配置类 +rocketmq: + name-server: 127.0.0.1:9876 # RocketMQ Namesrv + +spring: + # RabbitMQ 配置项,对应 RabbitProperties 配置类 + rabbitmq: + host: 127.0.0.1 # RabbitMQ 服务的地址 + port: 5672 # RabbitMQ 服务的端口 + username: rabbit # RabbitMQ 服务的账号 + password: rabbit # RabbitMQ 服务的密码 + # Kafka 配置项,对应 KafkaProperties 配置类 + kafka: + bootstrap-servers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔 + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项 +lock4j: + acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 + expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 + +--- #################### 监控相关配置 #################### + +# Actuator 监控端点的配置项 +management: + endpoints: + web: + base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator + exposure: + include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 + +# Spring Boot Admin 配置项 +spring: + boot: + admin: + # Spring Boot Admin Client 客户端的相关配置 + client: + url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path} # 设置 Spring Boot Admin Server 地址 + instance: + service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME] + username: admin + password: admin + # Spring Boot Admin Server 服务端的相关配置 + context-path: /admin # 配置 Spring + +# 日志文件配置 +logging: + file: + name: ./logs/${spring.application.name}.log # 日志文件名,相对于项目目录 + level: + # 配置自己写的 MyBatis Mapper 打印日志 + cn.iocoder.yudao.module.bpm.dal.mysql: debug + cn.iocoder.yudao.module.infra.dal.mysql: debug + cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper: INFO # 配置 ApiErrorLogMapper 的日志级别为 info,避免和 GlobalExceptionHandler 重复打印 + cn.iocoder.yudao.module.infra.dal.mysql.job.JobLogMapper: INFO # 配置 JobLogMapper 的日志级别为 info + cn.iocoder.yudao.module.infra.dal.mysql.file.FileConfigMapper: INFO # 配置 FileConfigMapper 的日志级别为 info + cn.iocoder.yudao.module.pay.dal.mysql: debug + cn.iocoder.yudao.module.pay.dal.mysql.notify.PayNotifyTaskMapper: INFO # 配置 PayNotifyTaskMapper 的日志级别为 info + cn.iocoder.yudao.module.system.dal.mysql: debug + cn.iocoder.yudao.module.system.dal.mysql.sms.SmsChannelMapper: INFO # 配置 SmsChannelMapper 的日志级别为 info + cn.iocoder.yudao.module.tool.dal.mysql: debug + cn.iocoder.yudao.module.member.dal.mysql: debug + cn.iocoder.yudao.module.trade.dal.mysql: debug + cn.iocoder.yudao.module.promotion.dal.mysql: debug + cn.iocoder.yudao.module.statistics.dal.mysql: debug + cn.iocoder.yudao.module.crm.dal.mysql: debug + cn.iocoder.yudao.module.erp.dal.mysql: debug + cn.iocoder.yudao.module.iot.dal.mysql: debug + cn.iocoder.yudao.module.iot.dal.tdengine: DEBUG + cn.iocoder.yudao.module.iot.service.rule: debug + cn.iocoder.yudao.module.ai.dal.mysql: debug + org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 芋艿:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示 + +debug: false + +--- #################### 微信公众号、小程序相关配置 #################### +wx: + mp: # 公众号配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 +# app-id: wx041349c6f39b268b # 测试号(牛希尧提供的) +# secret: 5abee519483bc9f8cb37ce280e814bd0 +# app-id: wx5b23ba7a5589ecbb # 测试号(自己的) +# secret: 2a7b3b20c537e52e74afd395eb85f61f + app-id: wxf56b1542b9e85f8a # 测试号(Kongdy 提供的) + secret: 496379dcef1ba869e9234de8d598cfd3 + # 存储配置,解决 AccessToken 的跨节点的共享 + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wx # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 + miniapp: # 小程序配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md 文档 + # appid: wx62056c0d5e8db250 # 测试号(牛希尧提供的) + # secret: 333ae72f41552af1e998fe1f54e1584a +# appid: wx63c280fe3248a3e7 # wenhualian的接口测试号 +# secret: 6f270509224a7ae1296bbf1c8cb97aed + appid: wxc4598c446f8a9cb3 # 测试号(Kongdy 提供的) + secret: 4a1a04e07f6a4a0751b39c3064a92c8b +# appid: wx66186af0759f47c9 # 测试号(puhui 提供的) +# secret: 3218bcbd112cbc614c7264ceb20144ac + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wa # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 + +--- #################### 芋道相关配置 #################### + +# 芋道配置项,设置当前项目所有自定义的配置 +yudao: + captcha: + enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试; + security: + mock-enable: true + mock-secret: emsoft + pay: + order-notify-url: https://yutou.mynatapp.cc/admin-api/pay/notify/order # 支付渠道的【支付】回调地址 + refund-notify-url: https://yutou.mynatapp.cc/admin-api/pay/notify/refund # 支付渠道的【退款】回调地址 + transfer-notify-url: https://yutou.mynatapp.cc/admin-api/pay/notify/transfer # 支付渠道的【转账】回调地址 + access-log: # 访问日志的配置项 + enable: false + demo: false # 关闭演示模式 + wxa-code: + env-version: develop # 小程序版本: 正式版为 "release";体验版为 "trial";开发版为 "develop" + wxa-subscribe-message: + miniprogram-state: developer # 跳转小程序类型:开发版为 “developer”;体验版为 “trial”为;正式版为 “formal” + tencent-lbs-key: TVDBZ-TDILD-4ON4B-PFDZA-RNLKH-VVF6E # QQ 地图的密钥 https://lbs.qq.com/service/staticV2/staticGuide/staticDoc + +justauth: + enabled: true + type: + DINGTALK: # 钉钉 + client-id: dingvrnreaje3yqvzhxg + client-secret: i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI + ignore-check-redirect-uri: true + WECHAT_ENTERPRISE: # 企业微信 + client-id: wwd411c69a39ad2e54 + client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw + agent-id: 1000004 + ignore-check-redirect-uri: true + # noinspection SpringBootApplicationYaml + WECHAT_MINI_PROGRAM: # 微信小程序 + client-id: ${wx.miniapp.appid} + client-secret: ${wx.miniapp.secret} + ignore-check-redirect-uri: true + ignore-check-state: true # 微信小程序,不会使用到 state,所以不进行校验 + WECHAT_MP: # 微信公众号 + client-id: ${wx.mp.app-id} + client-secret: ${wx.mp.secret} + ignore-check-redirect-uri: true + ALIPAY: # 支付宝小程序 + client-id: xx + client-secret: xx + alipay-public-key: xx + ignore-check-redirect-uri: true + ignore-check-state: true + cache: + type: REDIS + prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: + timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 + +--- #################### LLM(危险评估大模型)配置 #################### + +# OneAPI统一接口配置(用于危险评估智能分析) +llm: + # 本地OneAPI服务 + local: + base-url: ${LLM_BASE_URL:https://oneapi.gongjulian.cn/v1} # OneAPI服务地址 + api-key: ${LLM_API_KEY:sk-lB2Fc9ssY5UuwmiV5dD441F997364d29Be547e008dF5Cf41} # API密钥,建议通过环境变量配置 + model: ${LLM_MODEL:deepseek-ai/deepseek-v3.2} # 使用的模型 + timeout-seconds: ${LLM_TIMEOUT:120} # 请求超时时间 + # Claude(可选,需要时取消注释) + # claude: + # api-key: ${CLAUDE_API_KEY:} + # timeout-seconds: 30 + # model: claude-3-5-sonnet-20241022 + # OpenAI GPT-4(可选) + # openai: + # api-key: ${OPENAI_API_KEY:} + # model: gpt-4o + # timeout-seconds: 60 \ No newline at end of file diff --git a/yudao-server/bin/src/main/resources/application.yaml b/yudao-server/bin/src/main/resources/application.yaml new file mode 100644 index 0000000000..16036acc4b --- /dev/null +++ b/yudao-server/bin/src/main/resources/application.yaml @@ -0,0 +1,353 @@ +spring: + application: + name: yudao-server + + profiles: + active: local + + main: + allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。 + + # Servlet 配置 + servlet: + # 文件上传相关配置项 + multipart: + max-file-size: 16MB # 单个文件大小 + max-request-size: 32MB # 设置总上传的文件大小 + + # Jackson 配置项 + jackson: + serialization: + write-dates-as-timestamps: true # 设置 Date 的格式,使用时间戳 + write-date-timestamps-as-nanoseconds: false # 设置不使用 nanoseconds 的格式。例如说 1611460870.401,而是直接 1611460870401 + write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳 + fail-on-empty-beans: false # 允许序列化无属性的 Bean + + # Cache 配置项 + cache: + type: REDIS + redis: + time-to-live: 1h # 设置过期时间为 1 小时 + +server: + servlet: + encoding: + enabled: true + charset: UTF-8 # 必须设置 UTF-8,避免 WebFlux 流式返回(AI 场景)会乱码问题 + force: true + +--- #################### 接口文档配置 #################### + +springdoc: + api-docs: + enabled: true + path: /v3/api-docs + swagger-ui: + enabled: true + path: /swagger-ui + default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档 + +knife4j: + enable: true + setting: + language: zh_cn + +# 工作流 Flowable 配置 +flowable: + # 1. false: 默认值,Flowable 启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常 + # 2. true: 启动时会对数据库中所有表进行更新操作,如果表存在,不做处理,反之,自动创建表 + # 3. create_drop: 启动时自动创建表,关闭时自动删除表 + # 4. drop_create: 启动时,删除旧表,再创建新表 + database-schema-update: true # 设置为 false,可通过 https://github.com/flowable/flowable-sql 初始化 + db-history-used: true # flowable6 默认 true 生成信息表,无需手动设置 + check-process-definitions: false # 设置为 false,禁用 /resources/processes 自动部署 BPMN XML 流程 + history-level: audit # full:保存历史数据的最高级别,可保存全部流程相关细节,包括流程流转各节点参数 + +# MyBatis Plus 的配置项 +mybatis-plus: + configuration: + map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 + global-config: + db-config: + id-type: NONE # "智能"模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 +# id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库 +# id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库 +# id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解 + logic-delete-value: 1 # 逻辑已删除值(默认为 1) + logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) + banner: false # 关闭控制台的 Banner 打印 + type-aliases-package: ${yudao.info.base-package}.module.*.dal.dataobject + encryptor: + password: XDV71a+xqStEA3WH # 加解密的秘钥,可使用 https://www.imaegoo.com/2020/aes-key-generator/ 网站生成 + +mybatis-plus-join: + banner: false # 是否打印 mybatis plus join banner,默认true + sub-table-logic: true # 全局启用副表逻辑删除,默认true。关闭后关联查询不会加副表逻辑删除 + ms-cache: true # 拦截器MappedStatement缓存,默认 true + table-alias: t # 表别名(默认 t) + logic-del-type: on # 副表逻辑删除条件的位置,支持 WHERE、ON,默认 ON + +# Spring Data Redis 配置 +spring: + data: + redis: + repositories: + enabled: false # 项目未使用到 Spring Data Redis 的 Repository,所以直接禁用,保证启动速度 + +# VO 转换(数据翻译)相关 +easy-trans: + is-enable-global: false # 【默认禁用,对性能确认压力大】启用全局翻译(拦截所有 SpringMVC ResponseBody 进行自动翻译 )。如果对于性能要求很高可关闭此配置,或通过 @IgnoreTrans 忽略某个接口 + +--- #################### 验证码相关配置 #################### + +aj: + captcha: + jigsaw: classpath:images/jigsaw # 滑动验证,底图路径,不配置将使用默认图片;以 classpath: 开头,取 resource 目录下路径 + pic-click: classpath:images/pic-click # 滑动验证,底图路径,不配置将使用默认图片;以 classpath: 开头,取 resource 目录下路径 + cache-type: local # 缓存 local/redis... + cache-number: 1000 # local 缓存的阈值,达到这个值,清除缓存 + timing-clear: 180 # local定时清除过期缓存(单位秒),设置为0代表不执行 + type: blockPuzzle # 验证码类型 default 三种都实例化。blockPuzzle 滑块拼图、clickWord 文字点选、pictureWord 文本输入 + water-mark: 芋道源码 # 右下角水印文字(我的水印),可使用 https://tool.chinaz.com/tools/unicode.aspx 中文转 Unicode,Linux 可能需要转 unicode + interference-options: 0 # 滑动干扰项(0/1/2) + req-frequency-limit-enable: false # 接口请求次数一分钟限制是否开启 true|false + req-get-lock-limit: 5 # 验证失败 5 次,get接口锁定 + req-get-lock-seconds: 10 # 验证失败后,锁定时间间隔 + req-get-minute-limit: 30 # get 接口一分钟内请求数限制 + req-check-minute-limit: 60 # check 接口一分钟内请求数限制 + req-verify-minute-limit: 60 # verify 接口一分钟内请求数限制 + +--- #################### 消息队列相关 #################### + +# rocketmq 配置项,对应 RocketMQProperties 配置类 +rocketmq: + # Producer 配置项 + producer: + group: ${spring.application.name}_PRODUCER # 生产者分组 + +spring: + # Kafka 配置项,对应 KafkaProperties 配置类 + kafka: + # Kafka Producer 配置项 + producer: + acks: 1 # 0-不应答。1-leader 应答。all-所有 leader 和 follower 应答。 + retries: 3 # 发送失败时,重试发送的次数 + value-serializer: org.springframework.kafka.support.serializer.JsonSerializer # 消息的 value 的序列化 + # Kafka Consumer 配置项 + consumer: + auto-offset-reset: earliest # 设置消费者分组最初的消费进度为 earliest 。可参考博客 https://blog.csdn.net/lishuangzhe7047/article/details/74530417 理解 + value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer + properties: + spring.json.trusted.packages: '*' + # Kafka Consumer Listener 监听器配置 + listener: + missing-topics-fatal: false # 消费监听接口监听的主题不存在时,默认会报错。所以通过设置为 false ,解决报错 + +--- #################### AI 相关配置 #################### + +spring: + ai: + vectorstore: # 向量存储 + redis: + initialize-schema: true + index-name: knowledge_index # Redis 中向量索引的名称:用于存储和检索向量数据的索引标识符,所有相关的向量搜索操作都会基于这个索引进行 + prefix: "knowledge_segment:" # Redis 中存储向量数据的键名前缀:这个前缀会添加到每个存储在 Redis 中的向量数据键名前,每个 document 都是一个 hash 结构 + qdrant: + initialize-schema: true + collection-name: knowledge_segment # Qdrant 中向量集合的名称:用于存储向量数据的集合标识符,所有相关的向量操作都会在这个集合中进行 + host: 127.0.0.1 + port: 6334 + milvus: + initialize-schema: true + database-name: default # Milvus 中数据库的名称 + collection-name: knowledge_segment # Milvus 中集合的名称:用于存储向量数据的集合标识符,所有相关的向量操作都会在这个集合中进行 + client: + host: 127.0.0.1 + port: 19530 + qianfan: # 文心一言 + api-key: x0cuLZ7XsaTCU08vuJWO87Lg + secret-key: R9mYF9dl9KASgi5RUq0FQt3wRisSnOcK + zhipuai: # 智谱 AI + api-key: 32f84543e54eee31f8d56b2bd6020573.3vh9idLJZ2ZhxDEs + openai: # OpenAI 官方 + api-key: sk-aN6nWn3fILjrgLFT0fC4Aa60B72e4253826c77B29dC94f17 + base-url: https://api.gptsapi.net + azure: # OpenAI 微软 + openai: + endpoint: https://eastusprejade.openai.azure.com + anthropic: # Anthropic Claude + api-key: sk-muubv7cXeLw0Etgs743f365cD5Ea44429946Fa7e672d8942 + ollama: + base-url: http://127.0.0.1:11434 + chat: + model: llama3 + stabilityai: + api-key: sk-e53UqbboF8QJCscYvzJscJxJXoFcFg4iJjl1oqgE7baJETmx + dashscope: # 通义千问 + api-key: sk-47aa124781be4bfb95244cc62f6xxxx + minimax: # Minimax:https://www.minimaxi.com/ + api-key: xxxx + moonshot: # 月之暗面(KIMI) + api-key: sk-abc + deepseek: # DeepSeek + api-key: sk-e94db327cc7d457d99a8de8810fc6b12 + chat: + options: + model: deepseek-chat + model: + rerank: false # 是否开启“通义千问”的 Rerank 模型,填写 dashscope 开启 + mcp: + server: + enabled: false + name: yudao-mcp-server + version: 1.0.0 + instructions: 一个 MCP 示例服务 + sse-endpoint: /sse + client: + enabled: false + name: mcp + sse: + connections: + filesystem: + url: http://127.0.0.1:8089 + sse-endpoint: /sse + annotation-scanner: + enabled: false # TODO @芋艿:有 bug https://github.com/spring-projects/spring-ai/issues/4917 需要官方修复 + +yudao: + ai: + gemini: # 谷歌 Gemini + enable: true + api-key: AIzaSyAVoBxgoFvvte820vEQMma2LKBnC98bqMQ + model: gemini-2.5-flash + doubao: # 字节豆包 + enable: true + api-key: 5c1b5747-26d2-4ebd-a4e0-dd0e8d8b4272 + model: doubao-1-5-lite-32k-250115 + hunyuan: # 腾讯混元 + enable: true + api-key: sk-abc + model: hunyuan-turbo + siliconflow: # 硅基流动 + enable: true + api-key: sk-epsakfenqnyzoxhmbucsxlhkdqlcbnimslqoivkshalvdozz + model: deepseek-ai/DeepSeek-R1-Distill-Qwen-7B + xinghuo: # 讯飞星火 + enable: true + appKey: 75b161ed2aef4719b275d6e7f2a4d4cd + secretKey: YWYxYWI2MTA4ODI2NGZlYTQyNjAzZTcz + model: x1 + baichuan: # 百川智能 + enable: true + api-key: sk-abc + model: Baichuan4-Turbo + midjourney: + enable: true + # base-url: https://api.holdai.top/mj-relax/mj + base-url: https://api.holdai.top/mj + api-key: sk-dZEPiVaNcT3FHhef51996bAa0bC74806BeAb620dA5Da10Bf + notify-url: http://java.nat300.top/admin-api/ai/image/midjourney/notify + suno: + enable: true + # base-url: https://suno-55ishh05u-status2xxs-projects.vercel.app + base-url: http://127.0.0.1:3001 + web-search: + enable: true + api-key: sk-40500e52840f4d24b956d0b1d80d9abe + +--- #################### 芋道相关配置 #################### + +yudao: + info: + version: 1.0.0 + base-package: cn.iocoder.yudao + web: + admin-ui: + url: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址 + xss: + enable: false + exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 + - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 + security: + permit-all_urls: + - /admin-api/mp/open/** # 微信公众号开放平台,微信回调接口,不需要登录 + api-encrypt: + enable: true # 是否开启 API 加密 + algorithm: AES # 加密算法,支持 AES、RSA 等 + request-key: 52549111389893486934626385991395 # 【AES 案例】请求加密的秘钥,,必须 16、24、32 位 + response-key: 96103715984234343991809655248883 # 【AES 案例】响应加密的秘钥,AES 案例,必须 16、24、32 位 +# request-key: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKWzasimcZ1icsWDPVdTXcZs1DkOWjI+m9bTQU8aOqflnomkr6QO1WWeSHBHzuJGsTlV/ZY2pFfq/NstKC94hBjx7yioYJvzb2bKN/Uy4j5nM3iCF//u0RiFkkY8j0Bt/EWoFTOb6RHf8cHIAjbYYtP3pYzbpCIwryfe0g//KIuzAgMBAAECgYADDjZrYcpZjR2xr7RbXmGtzYbyUGXwZEAqa3XaWBD51J2iSyOkAlQEDjGmxGQ3vvb4qDHHadWI+3/TKNeDXJUO+xTVJrnismK5BsHyC6dfxlIK/5BAuknryTca/3UoA1yomS9ZlF3Q0wcecaDoEnSmZEaTrp9T3itPAz4KnGjv5QJBAN5mNcfu6iJ5ktNvEdzqcxkKwbXb9Nq1SLnmTvt+d5TPX7eQ9fCwtOfVu5iBLhhZzb5PJ7pSN3Zt6rl5/jPOGv0CQQC+vETX9oe1wbxZSv6/RBGy0Xow6GndbJwvd89PcAJ2h+OJXWtg/rRHB3t9EQm7iis0XbZTapj19E4U6l8EibhvAkEA1CvYpRwmHKu1SqdM+GBnW/2qHlBwwXJvpoK02TOm674HR/4w0+YRQJfkd7LOAgcyxJuJgDTNmtt0MmzS+iNoFQJAMVSUIZ77XoDq69U/qcw7H5qaFcgmiUQr6QL9tTftCyb+LGri+MUnby96OtCLSdvkbLjIDS8GvKYhA7vSM2RDNQJBAKGyVVnFFIrbK3yuwW71yvxQEGoGxlgvZSezZ4vGgqTxrr9HvAtvWLwR6rpe6ybR/x8uUtoW7NRBWgpiIFwjvY4= # 【RSA 案例】请求解密的私钥 +# response-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDh/CHyBcS/zEfVyINVA7+c9Xxl0CPdxPMK1OIjxaLy/7BLfbkoEpI8onQtjuzfpuxCraDem9bu3BMF0pMH95HytI3Vi0kGjaV+WLIalwgc2w37oA2sbsmKzQOP7SDLO5s2QJNAD7kVwd+Q5rqaLu2MO0xVv+0IUJhn83hClC0L5wIDAQAB # 【RSA 案例】响应加密的公钥 + websocket: + enable: true # websocket的开关 + path: /infra/ws # 路径 + sender-type: local # 消息发送的类型,可选值为 local、redis、rocketmq、kafka、rabbitmq + sender-rocketmq: + topic: ${spring.application.name}-websocket # 消息发送的 RocketMQ Topic + consumer-group: ${spring.application.name}-websocket-consumer # 消息发送的 RocketMQ Consumer Group + sender-rabbitmq: + exchange: ${spring.application.name}-websocket-exchange # 消息发送的 RabbitMQ Exchange + queue: ${spring.application.name}-websocket-queue # 消息发送的 RabbitMQ Queue + sender-kafka: + topic: ${spring.application.name}-websocket # 消息发送的 Kafka Topic + consumer-group: ${spring.application.name}-websocket-consumer # 消息发送的 Kafka Consumer Group + swagger: + title: 芋道快速开发平台 + description: 提供管理后台、用户 App 的所有功能 + version: ${yudao.info.version} + url: ${yudao.web.admin-ui.url} + email: xingyu4j@vip.qq.com + license: MIT + license-url: https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/LICENSE + codegen: + base-package: ${yudao.info.base-package} + db-schemas: ${spring.datasource.dynamic.datasource.master.name} + front-type: 20 # 前端模版的类型,参见 CodegenFrontTypeEnum 枚举类 + vo-type: 10 # VO 的类型,参见 CodegenVOTypeEnum 枚举类 + delete-batch-enable: true # 是否生成批量删除接口 + unit-test-enable: false # 是否生成单元测试 + tenant: # 多租户相关配置项 + enable: true + ignore-urls: + - /jmreport/* # 积木报表,无法携带租户编号 + ignore-visit-urls: + - /admin-api/system/user/profile/** + - /admin-api/system/auth/** + ignore-tables: + ignore-caches: + - user_role_ids + - permission_menu_ids + - oauth_client + - notify_template + - mail_account + - mail_template + - sms_template + - iot:device + - iot:thing_model_list + sms-code: # 短信验证码相关的配置项 + expire-times: 10m + send-frequency: 1m + send-maximum-quantity-per-day: 10 + begin-code: 9999 # 这里配置 9999 的原因是,测试方便。 + end-code: 9999 # 这里配置 9999 的原因是,测试方便。 + trade: + order: + pay-expire-time: 2h # 支付的过期时间 + receive-expire-time: 14d # 收货的过期时间 + comment-expire-time: 7d # 评论的过期时间 + status-sync-to-wxa-enable: true # 是否同步订单状态到微信小程序 + express: + client: kd_100 + kd-niao: + api-key: cb022f1e-48f1-4c4a-a723-9001ac9676b8 + business-id: 1809751 + request-type: 1002 # 免费版 1002;付费版 8001 + kd100: + key: pLXUGAwK5305 + customer: E77DF18BE109F454A5CD319E44BF5177 + iot: + message-bus: + type: redis # 消息总线的类型 + +debug: false \ No newline at end of file diff --git a/yudao-server/bin/src/main/resources/logback-spring.xml b/yudao-server/bin/src/main/resources/logback-spring.xml new file mode 100644 index 0000000000..15b28cfdff --- /dev/null +++ b/yudao-server/bin/src/main/resources/logback-spring.xml @@ -0,0 +1,56 @@ + + + + + + + + +       + + ${CONSOLE_LOG_PATTERN} + + + + + + + + ${FILE_LOG_PATTERN} + + + ${LOG_FILE} + + + ${LOG_FILE}.%d{yyyy-MM-dd}.%i.log + 30 + 10MB + + + + + 0 + 512 + + + + + + + + + + + + + + + diff --git a/yudao-server/bin/src/test/java/cn/iocoder/yudao/ProjectReactor.class b/yudao-server/bin/src/test/java/cn/iocoder/yudao/ProjectReactor.class new file mode 100644 index 0000000000..7688b271ea Binary files /dev/null and b/yudao-server/bin/src/test/java/cn/iocoder/yudao/ProjectReactor.class differ