From 91455194cef065e088aa27a7e27df3e019387794 Mon Sep 17 00:00:00 2001 From: wsm <2746563060@qq.com> Date: Thu, 6 Aug 2026 18:41:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(inspectimprove):=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=81=97=E7=95=99=E5=AD=A4=E7=AB=8B=E5=AE=9E=E4=BD=93=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=98=B6=E6=AE=B5=E5=AD=97=E6=AE=B5=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 dj_inspect_improve 遗留实体(控制器/实体/mapper/service/完成监听器及其测试), 清理 InspectImproveFlow 与两个监听器的未使用注入,删除无数据表并记录 DDL - DqInspectTaskServiceImpl.saveMain 兜底 completedStage=0,修复 completed_stage 为 NULL 导致阶段递增失效 - 同步修正相关测试的构造函数参数 --- .../impl/DqInspectTaskServiceImpl.java | 3 + .../DjInspectImproveController.java | 340 ------------------ .../entity/DjInspectImprove.java | 154 -------- .../flow/InspectImproveFlow.java | 3 - .../AfterDqLeaderApproveListener.java | 2 - .../AfterImplDeptLeaderApproveListener.java | 2 - .../AfterInspectImproveCompleteListener.java | 50 --- .../mapper/DjInspectImproveMapper.java | 35 -- .../mapper/xml/DjInspectImproveMapper.xml | 25 -- .../service/IDjInspectImproveService.java | 74 ---- .../impl/DjInspectImproveServiceImpl.java | 219 ----------- .../InspectImproveFlowTest.java | 4 +- .../AfterDqLeaderApproveListenerTest.java | 4 +- ...fterImplDeptLeaderApproveListenerTest.java | 4 +- ...terInspectImproveCompleteListenerTest.java | 77 ---- sql-changelog/README.md | 1 + .../20260806_删除遗留dj_inspect_improve表.sql | 8 + 17 files changed, 18 insertions(+), 987 deletions(-) delete mode 100644 jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/controller/DjInspectImproveController.java delete mode 100644 jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/entity/DjInspectImprove.java delete mode 100644 jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterInspectImproveCompleteListener.java delete mode 100644 jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/mapper/DjInspectImproveMapper.java delete mode 100644 jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/mapper/xml/DjInspectImproveMapper.xml delete mode 100644 jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/service/IDjInspectImproveService.java delete mode 100644 jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/service/impl/DjInspectImproveServiceImpl.java delete mode 100644 jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterInspectImproveCompleteListenerTest.java create mode 100644 sql-changelog/ddl/20260806_删除遗留dj_inspect_improve表.sql diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/dqinspecttask/service/impl/DqInspectTaskServiceImpl.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/dqinspecttask/service/impl/DqInspectTaskServiceImpl.java index 1535cc5..d2e04bd 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/dqinspecttask/service/impl/DqInspectTaskServiceImpl.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/dqinspecttask/service/impl/DqInspectTaskServiceImpl.java @@ -42,6 +42,9 @@ public class DqInspectTaskServiceImpl extends ServiceImpl0) { diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/controller/DjInspectImproveController.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/controller/DjInspectImproveController.java deleted file mode 100644 index c810df4..0000000 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/controller/DjInspectImproveController.java +++ /dev/null @@ -1,340 +0,0 @@ -package org.jeecg.modules.supervision.inspectimprove.controller; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.common.util.oConvertUtils; -import org.jeecg.common.system.vo.SelectTreeModel; -import org.jeecg.modules.supervision.common.BpmStatus; -import org.jeecg.modules.supervision.common.SupervisionConstant; -import org.jeecg.modules.supervision.bqtakepulse.entity.BgTakepulse; -import org.jeecg.modules.supervision.inspectimprove.entity.DjInspectImprove; -import org.jeecg.modules.supervision.inspectimprove.service.IDjInspectImproveService; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.extern.slf4j.Slf4j; - -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; -import org.jeecg.common.system.base.controller.JeecgController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; -import com.alibaba.fastjson.JSON; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Operation; -import org.jeecg.common.aspect.annotation.AutoLog; -import org.apache.shiro.authz.annotation.RequiresPermissions; - - /** - * @Description: 巡视整改台账 - * @Author: jeecg-boot - * @Date: 2026-05-18 - * @Version: V1.0 - */ -@Tag(name="巡视整改台账") -@RestController -@RequestMapping("/dj/inspectimprove/djInspectImprove") -@Slf4j -public class DjInspectImproveController extends JeecgController{ - @Autowired - private IDjInspectImproveService djInspectImproveService; - - /** - * 分页列表查询 - * - * @param djInspectImprove - * @param pageNo - * @param pageSize - * @param req - * @return - */ - @AutoLog(value = "巡视整改台账-分页列表查询") - @Operation(summary="巡视整改台账-分页列表查询") - @GetMapping(value = "/rootList") - public Result> queryPageList(DjInspectImprove djInspectImprove, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - String hasQuery = req.getParameter("hasQuery"); - if(hasQuery != null && "true".equals(hasQuery)){ - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(djInspectImprove, req.getParameterMap()); - List list = djInspectImproveService.queryTreeListNoPage(queryWrapper); - IPage pageList = new Page<>(1, 10, list.size()); - pageList.setRecords(list); - return Result.OK(pageList); - }else{ - String parentId = djInspectImprove.getPid(); - if (oConvertUtils.isEmpty(parentId)) { - parentId = "0"; - } - djInspectImprove.setPid(null); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(djInspectImprove, req.getParameterMap()); - // 使用 eq 防止模糊查询 - queryWrapper.eq("pid", parentId); - Page page = new Page(pageNo, pageSize); - IPage pageList = djInspectImproveService.page(page, queryWrapper); - return Result.OK(pageList); - } - } - - /** - * 【vue3专用】加载节点的子数据 - * - * @param pid - * @return - */ - @AutoLog(value = "巡视整改台账-加载树子节点") - @RequestMapping(value = "/loadTreeChildren", method = RequestMethod.GET) - public Result> loadTreeChildren(@RequestParam(name = "pid") String pid) { - Result> result = new Result<>(); - try { - List ls = djInspectImproveService.queryListByPid(pid); - result.setResult(ls); - result.setSuccess(true); - } catch (Exception e) { - e.printStackTrace(); - result.setMessage(e.getMessage()); - result.setSuccess(false); - } - return result; - } - - /** - * 【vue3专用】加载一级节点/如果是同步 则所有数据 - * - * @param async - * @param pcode - * @return - */ - @AutoLog(value = "巡视整改台账-加载树根节点") - @RequestMapping(value = "/loadTreeRoot", method = RequestMethod.GET) - public Result> loadTreeRoot(@RequestParam(name = "async") Boolean async, @RequestParam(name = "pcode") String pcode) { - Result> result = new Result<>(); - try { - List ls = djInspectImproveService.queryListByCode(pcode); - if (!async) { - loadAllChildren(ls); - } - result.setResult(ls); - result.setSuccess(true); - } catch (Exception e) { - e.printStackTrace(); - result.setMessage(e.getMessage()); - result.setSuccess(false); - } - return result; - } - - /** - * 【vue3专用】递归求子节点 同步加载用到 - * - * @param ls - */ - private void loadAllChildren(List ls) { - for (SelectTreeModel tsm : ls) { - List temp = djInspectImproveService.queryListByPid(tsm.getKey()); - if (temp != null && temp.size() > 0) { - tsm.setChildren(temp); - loadAllChildren(temp); - } - } - } - - /** - * 获取子数据 - * @param djInspectImprove - * @param req - * @return - */ - @AutoLog(value = "巡视整改台账-获取子数据") - @Operation(summary="巡视整改台账-获取子数据") - @GetMapping(value = "/childList") - public Result> queryPageList(DjInspectImprove djInspectImprove,HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(djInspectImprove, req.getParameterMap()); - List list = djInspectImproveService.list(queryWrapper); - IPage pageList = new Page<>(1, 10, list.size()); - pageList.setRecords(list); - return Result.OK(pageList); - } - - /** - * 批量查询子节点 - * @param parentIds 父ID(多个采用半角逗号分割) - * @return 返回 IPage - * @param parentIds - * @return - */ - @AutoLog(value = "巡视整改台账-批量获取子数据") - @Operation(summary="巡视整改台账-批量获取子数据") - @GetMapping("/getChildListBatch") - public Result getChildListBatch(@RequestParam("parentIds") String parentIds) { - try { - QueryWrapper queryWrapper = new QueryWrapper<>(); - List parentIdList = Arrays.asList(parentIds.split(",")); - queryWrapper.in("pid", parentIdList); - List list = djInspectImproveService.list(queryWrapper); - IPage pageList = new Page<>(1, 10, list.size()); - pageList.setRecords(list); - return Result.OK(pageList); - } catch (Exception e) { - log.error(e.getMessage(), e); - return Result.error("批量查询子节点失败:" + e.getMessage()); - } - } - - /** - * 添加 - * - * @param djInspectImprove - * @return - */ - @AutoLog(value = "巡视整改台账-添加") - @Operation(summary="巡视整改台账-添加") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:add") - @PostMapping(value = "/add") - public Result add(@RequestBody DjInspectImprove djInspectImprove) { - djInspectImproveService.addDjInspectImprove(djInspectImprove); - return Result.OK("添加成功!"); - } - - /** - * 编辑 - * - * @param djInspectImprove - * @return - */ - @AutoLog(value = "巡视整改台账-编辑") - @Operation(summary="巡视整改台账-编辑") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:edit") - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result edit(@RequestBody DjInspectImprove djInspectImprove) { - djInspectImproveService.updateDjInspectImprove(djInspectImprove); - return Result.OK("编辑成功!"); - } - - /** - * 通过id删除 - * - * @param id - * @return - */ - @AutoLog(value = "巡视整改台账-通过id删除") - @Operation(summary="巡视整改台账-通过id删除") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:delete") - @DeleteMapping(value = "/delete") - public Result delete(@RequestParam(name="id",required=true) String id) { - djInspectImproveService.deleteDjInspectImprove(id); - return Result.OK("删除成功!"); - } - - /** - * 批量删除 - * - * @param ids - * @return - */ - @AutoLog(value = "巡视整改台账-批量删除") - @Operation(summary="巡视整改台账-批量删除") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:deleteBatch") - @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.djInspectImproveService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("批量删除成功!"); - } - - /** - * 通过id查询 - * - * @param id - * @return - */ - @AutoLog(value = "巡视整改台账-通过id查询") - @Operation(summary="巡视整改台账-通过id查询") - @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { - DjInspectImprove djInspectImprove = djInspectImproveService.getById(id); - if(djInspectImprove==null) { - return Result.error("未找到对应数据"); - } - return Result.OK(djInspectImprove); - } - - /** - * 导出excel - * - * @param request - * @param djInspectImprove - */ - @AutoLog(value = "巡视整改台账-通过excel导出") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:exportXls") - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, DjInspectImprove djInspectImprove) { - return super.exportXls(request, djInspectImprove, DjInspectImprove.class, "巡视整改台账"); - } - - - /** - * 通过excel导入数据 - * - * @param request - * @param response - * @return - */ - @AutoLog(value = "巡视整改台账-通过excel导入") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:importExcel") - @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, DjInspectImprove.class); - } - - /** - * 仅导出Excel表头(EasyExcel) - */ - @AutoLog(value = "巡视整改台账-通过EasyExcel导出模板") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:exportXls") - @GetMapping(value = "/exportXlsHeaders") - public void exportXlsHeaders(HttpServletResponse response) throws IOException { - super.exportXlsHeadersByEasyExcel(response, DjInspectImprove.class, "巡视整改台账"); - } - /** - * 通过EasyExcel导入数据 - */ - @AutoLog(value = "巡视整改台账-通过EasyExcel导入") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:importExcel") - @RequestMapping(value = "/importExcelByEasyExcel", method = RequestMethod.POST) - public Result importExcelByEasyExcel(HttpServletRequest request) { - return super.importExcelByEasyExcel(request, DjInspectImprove.class, - Map.of( - SupervisionConstant.ClassFieldName.BPM_STATUS_NAME, - BpmStatus.NOT_START.getCode(), - SupervisionConstant.ClassFieldName.DEL_FLAG_NAME, - SupervisionConstant.DelFlag.NORMAL)); - } - - /** - * 通过EasyExcel校验数据,只返回校验结果,不保存到数据库 - */ - @AutoLog(value = "巡视整改台账-通过EasyExcel校验导入") - @RequiresPermissions("dj.inspectimprove:dj_inspect_improve:importExcel") - @RequestMapping(value = "/checkExcelByEasyExcel", method = RequestMethod.POST) - public Result checkExcelByEasyExcel(HttpServletRequest request) { - return super.checkExcelByEasyExcel(request, DjInspectImprove.class); - } - - } diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/entity/DjInspectImprove.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/entity/DjInspectImprove.java deleted file mode 100644 index c17fbf7..0000000 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/entity/DjInspectImprove.java +++ /dev/null @@ -1,154 +0,0 @@ -package org.jeecg.modules.supervision.inspectimprove.entity; - -import java.io.Serializable; -import java.util.Date; -import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.TableLogic; -import org.jeecg.common.constant.ProvinceCityArea; -import org.jeecg.common.util.SpringContextUtils; -import lombok.Data; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; -import org.jeecg.common.util.excel.annotation.ExcelColumn; -import org.jeecg.common.aspect.annotation.Dict; - -import io.swagger.v3.oas.annotations.media.Schema; -import java.io.UnsupportedEncodingException; - -/** - * @Description: 巡视整改台账 - * @Author: jeecg-boot - * @Date: 2026-05-18 - * @Version: V1.0 - */ -@Data -@TableName("dj_inspect_improve") -@Schema(description="巡视整改台账") -public class DjInspectImprove implements Serializable { - private static final long serialVersionUID = 1L; - - /**主键*/ - @TableId(type = IdType.ASSIGN_ID) - @Schema(description = "主键") - private java.lang.String id; - /**创建人*/ - @Schema(description = "创建人") - private java.lang.String createBy; - /**创建日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @Schema(description = "创建日期") - private java.util.Date createTime; - /**更新人*/ - @Schema(description = "更新人") - private java.lang.String updateBy; - /**更新日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - @Schema(description = "更新日期") - private java.util.Date updateTime; - /**所属部门*/ - @Schema(description = "所属部门") - private java.lang.String sysOrgCode; - /**树形表单父id*/ - // @Excel(name = "树形表单父id", width = 15) - @Schema(description = "树形表单父id") - private java.lang.String pid; - /**是否有子节点*/ - // @Excel(name = "是否有子节点", width = 15, dicCode = "yn") - @Dict(dicCode = "yn") - @Schema(description = "是否有子节点") - private java.lang.String hasChild; - /**问题分类*/ - @Excel(name = "问题分类", width = 15) - @ExcelColumn(name = "问题分类", width = 15, dicCode = "inspect_improve_type") - @Schema(description = "问题分类") - @Dict(dicCode = "inspect_improve_type") - private java.lang.Integer questionCategory; - /**面上问题*/ - @Excel(name = "面上问题", width = 15) - @ExcelColumn(name = "面上问题", width = 15) - @Schema(description = "面上问题") - private java.lang.String mianshangQuestion; - /**具体问题*/ - @Excel(name = "具体问题", width = 15) - @ExcelColumn(name = "具体问题", width = 15) - @Schema(description = "具体问题") - private java.lang.String specicalQuestion; - /**巡视建议*/ - @Excel(name = "巡视建议", width = 15) - @ExcelColumn(name = "巡视建议", width = 15) - @Schema(description = "巡视建议") - private java.lang.String inspectAdvice; - /**整改措施*/ - @Excel(name = "整改措施", width = 15) - @ExcelColumn(name = "整改措施", width = 15) - @Schema(description = "整改措施") - private java.lang.String improveMeasure; - /**完成时限*/ - @Excel(name = "完成时限", width = 15, format = "yyyy-MM-dd") - @ExcelColumn(name = "完成时限", width = 15, format = "yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") - @Schema(description = "完成时限") - private java.util.Date deadline; - /**目标节点*/ - @Excel(name = "目标节点", width = 15) - @ExcelColumn(name = "目标节点", width = 15) - @Schema(description = "目标节点") - private java.lang.String targetNode; - /**问题责任领导*/ - @Excel(name = "问题责任领导", width = 15) - @ExcelColumn(name = "问题责任领导", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username") - @Schema(description = "问题责任领导") - private java.lang.String questionResLeader; - /**问题责任部门*/ - @Excel(name = "问题责任部门", width = 15) - @ExcelColumn(name = "问题责任部门", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id") - @Schema(description = "问题责任部门") - private java.lang.String questionResDept; - /**措施责任领导*/ - @Excel(name = "措施责任领导", width = 15) - @ExcelColumn(name = "措施责任领导", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username") - @Schema(description = "措施责任领导") - private java.lang.String measureResLeader; - /**措施责任部门*/ - @Excel(name = "措施责任部门", width = 15) - @ExcelColumn(name = "措施责任部门", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id") - @Schema(description = "措施责任部门") - private java.lang.String measureResDept; - /**整改交付成果*/ - @Excel(name = "整改交付成果", width = 15) - @ExcelColumn(name = "整改交付成果", width = 15) - @Schema(description = "整改交付成果") - private java.lang.String rectificationEvidence; - /**成效评价标准*/ - @Excel(name = "成效评价标准", width = 15) - @ExcelColumn(name = "成效评价标准", width = 15) - @Schema(description = "成效评价标准") - private java.lang.String evaluationCriterion; - /**工作进展*/ - @Excel(name = "工作进展", width = 15) - @ExcelColumn(name = "工作进展", width = 15) - @Schema(description = "工作进展") - private java.lang.String workProgress; - /**检查情况*/ - @Excel(name = "检查情况", width = 15) - @ExcelColumn(name = "检查情况", width = 15) - @Schema(description = "检查情况") - private java.lang.String inspectionStatus; - /**监督意见*/ - @Excel(name = "监督意见", width = 15) - @ExcelColumn(name = "监督意见", width = 15) - @Schema(description = "监督意见") - private java.lang.String supervisoryOpinion; - /**措施数量*/ - @Excel(name = "措施数量", width = 15) - @ExcelColumn(name = "措施数量", width = 15) - @Schema(description = "措施数量") - private java.lang.Integer measureCount; -} diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/flow/InspectImproveFlow.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/flow/InspectImproveFlow.java index bbde1f6..654caf3 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/flow/InspectImproveFlow.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/flow/InspectImproveFlow.java @@ -13,8 +13,6 @@ import org.jeecg.modules.supervision.inspectimprove.config.InspectImproveConfig; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.modules.supervision.dqinspecttask.entity.DqInspectTask; import org.jeecg.modules.supervision.dqinspecttask.service.IDqInspectTaskService; -import org.jeecg.modules.supervision.inspectimprove.entity.DjInspectImprove; -import org.jeecg.modules.supervision.inspectimprove.service.IDjInspectImproveService; import org.jeecg.modules.extbpm.process.common.expression.FlowNodeExpression; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -30,7 +28,6 @@ public class InspectImproveFlow { private final InspectImproveConfig inspectImproveConfig; private final OrgConfig orgConfig; - private final IDjInspectImproveService djInspectImproveService; private final FlowNodeExpression flowNodeExpression; private final ISysBaseAPI iSysBaseAPI; private final IDqInspectTaskService dqInspectTaskService; diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterDqLeaderApproveListener.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterDqLeaderApproveListener.java index 275084f..829f390 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterDqLeaderApproveListener.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterDqLeaderApproveListener.java @@ -5,7 +5,6 @@ import org.flowable.engine.RuntimeService; import org.flowable.engine.delegate.TaskListener; import org.flowable.task.service.delegate.DelegateTask; import org.jeecg.modules.supervision.inspectimprove.constant.InspectConstant; -import org.jeecg.modules.supervision.inspectimprove.service.IDjInspectImproveService; import org.jeecg.modules.supervision.inspectimprove.config.InspectImproveConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -19,7 +18,6 @@ public class AfterDqLeaderApproveListener implements TaskListener { private static final long serialVersionUID = 1L; private final InspectImproveConfig inspectImproveConfig; - private final IDjInspectImproveService djInspectImproveService; private final RuntimeService runtimeService; @Override diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterImplDeptLeaderApproveListener.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterImplDeptLeaderApproveListener.java index 15a3b4b..8a847b8 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterImplDeptLeaderApproveListener.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterImplDeptLeaderApproveListener.java @@ -5,7 +5,6 @@ import org.flowable.engine.RuntimeService; import org.flowable.engine.delegate.TaskListener; import org.flowable.task.service.delegate.DelegateTask; import org.jeecg.modules.supervision.inspectimprove.constant.InspectConstant; -import org.jeecg.modules.supervision.inspectimprove.service.IDjInspectImproveService; import org.jeecg.modules.supervision.inspectimprove.config.InspectImproveConfig; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -19,7 +18,6 @@ public class AfterImplDeptLeaderApproveListener implements TaskListener { private static final long serialVersionUID = 1L; private final InspectImproveConfig inspectImproveConfig; - private final IDjInspectImproveService djInspectImproveService; private final RuntimeService runtimeService; @Override diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterInspectImproveCompleteListener.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterInspectImproveCompleteListener.java deleted file mode 100644 index 6d4499a..0000000 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterInspectImproveCompleteListener.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.jeecg.modules.supervision.inspectimprove.listener; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.flowable.engine.delegate.TaskListener; -import org.flowable.task.service.delegate.DelegateTask; -import org.jeecg.modules.supervision.inspectimprove.entity.DjInspectImprove; -import org.jeecg.modules.supervision.inspectimprove.service.IDjInspectImproveService; -import org.jeecg.modules.supervision.inspectimprove.config.InspectImproveConfig; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.Objects; - -/** - * 巡视整改流程最终审批通过后,将业务表单状态标记为已完成 - */ -@Slf4j -@Component("AfterInspectImproveCompleteListener") -@RequiredArgsConstructor(onConstructor_ = @Autowired) -public class AfterInspectImproveCompleteListener implements TaskListener { - - private static final long serialVersionUID = 1L; - private final InspectImproveConfig inspectImproveConfig; - private final IDjInspectImproveService djInspectImproveService; - - @Override - public void notify(DelegateTask delegateTask) { - Object businessKeyObj = delegateTask.getVariable( - inspectImproveConfig.getInspectImprove().getBusinessKey()); - String businessKey = Objects.toString(businessKeyObj, "").trim(); - - if (businessKey.isEmpty()) { - log.warn("【巡视整改完成监听器】未查询到业务表单ID,跳过。TaskId: {}", delegateTask.getId()); - return; - } - - try { - DjInspectImprove entity = djInspectImproveService.getById(businessKey); - if (entity == null) { - log.warn("【巡视整改完成监听器】业务数据不存在,id: {}", businessKey); - return; - } - // TODO: 根据实际业务补充完成状态字段的更新逻辑 - log.info("【巡视整改完成监听器】业务表单 [id={}] 流程已完成", businessKey); - } catch (Exception e) { - log.error("【巡视整改完成监听器】更新业务表单异常, businessKey: " + businessKey, e); - } - } -} diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/mapper/DjInspectImproveMapper.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/mapper/DjInspectImproveMapper.java deleted file mode 100644 index eeb45c2..0000000 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/mapper/DjInspectImproveMapper.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.jeecg.modules.supervision.inspectimprove.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Param; -import org.jeecg.common.system.vo.SelectTreeModel; -import org.jeecg.modules.supervision.inspectimprove.entity.DjInspectImprove; - -import java.util.List; -import java.util.Map; - -/** - * @Description: 巡视整改台账 - * @Author: jeecg-boot - * @Date: 2026-05-18 - * @Version: V1.0 - */ -public interface DjInspectImproveMapper extends BaseMapper { - - /** - * 编辑节点状态 - * @param id - * @param status - */ - void updateTreeNodeStatus(@Param("id") String id,@Param("status") String status); - - /** - * 【vue3专用】根据父级ID查询树节点数据 - * - * @param pid - * @param query - * @return - */ - List queryListByPid(@Param("pid") String pid, @Param("query") Map query); - -} diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/mapper/xml/DjInspectImproveMapper.xml b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/mapper/xml/DjInspectImproveMapper.xml deleted file mode 100644 index d7a48a0..0000000 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/mapper/xml/DjInspectImproveMapper.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - update dj_inspect_improve set has_child = #{status} where id = #{id} - - - - - - \ No newline at end of file diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/service/IDjInspectImproveService.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/service/IDjInspectImproveService.java deleted file mode 100644 index 7efbd09..0000000 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/service/IDjInspectImproveService.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.jeecg.modules.supervision.inspectimprove.service; - -import org.jeecg.common.system.vo.SelectTreeModel; -import org.jeecg.modules.supervision.inspectimprove.entity.DjInspectImprove; -import com.baomidou.mybatisplus.extension.service.IService; -import org.jeecg.common.exception.JeecgBootException; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import java.util.List; - -/** - * @Description: 巡视整改台账 - * @Author: jeecg-boot - * @Date: 2026-05-18 - * @Version: V1.0 - */ -public interface IDjInspectImproveService extends IService { - - /**根节点父ID的值*/ - public static final String ROOT_PID_VALUE = "0"; - - /**树节点有子节点状态值*/ - public static final String HASCHILD = "1"; - - /**树节点无子节点状态值*/ - public static final String NOCHILD = "0"; - - /** - * 新增节点 - * - * @param djInspectImprove - */ - void addDjInspectImprove(DjInspectImprove djInspectImprove); - - /** - * 修改节点 - * - * @param djInspectImprove - * @throws JeecgBootException - */ - void updateDjInspectImprove(DjInspectImprove djInspectImprove) throws JeecgBootException; - - /** - * 删除节点 - * - * @param id - * @throws JeecgBootException - */ - void deleteDjInspectImprove(String id) throws JeecgBootException; - - /** - * 查询所有数据,无分页 - * - * @param queryWrapper - * @return List - */ - List queryTreeListNoPage(QueryWrapper queryWrapper); - - /** - * 【vue3专用】根据父级编码加载分类字典的数据 - * - * @param parentCode - * @return - */ - List queryListByCode(String parentCode); - - /** - * 【vue3专用】根据pid查询子节点集合 - * - * @param pid - * @return - */ - List queryListByPid(String pid); - -} diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/service/impl/DjInspectImproveServiceImpl.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/service/impl/DjInspectImproveServiceImpl.java deleted file mode 100644 index bf16181..0000000 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/supervision/inspectimprove/service/impl/DjInspectImproveServiceImpl.java +++ /dev/null @@ -1,219 +0,0 @@ -package org.jeecg.modules.supervision.inspectimprove.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import org.jeecg.common.exception.JeecgBootException; -import org.jeecg.common.util.oConvertUtils; -import org.jeecg.common.system.vo.SelectTreeModel; -import org.jeecg.modules.supervision.inspectimprove.entity.DjInspectImprove; -import org.jeecg.modules.supervision.inspectimprove.mapper.DjInspectImproveMapper; -import org.jeecg.modules.supervision.inspectimprove.service.IDjInspectImproveService; -import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -/** - * @Description: 巡视整改台账 - * @Author: jeecg-boot - * @Date: 2026-05-18 - * @Version: V1.0 - */ -@Service -public class DjInspectImproveServiceImpl extends ServiceImpl implements IDjInspectImproveService { - - @Override - public void addDjInspectImprove(DjInspectImprove djInspectImprove) { - //新增时设置hasChild为0 - djInspectImprove.setHasChild(IDjInspectImproveService.NOCHILD); - if(oConvertUtils.isEmpty(djInspectImprove.getPid())){ - djInspectImprove.setPid(IDjInspectImproveService.ROOT_PID_VALUE); - }else{ - //如果当前节点父ID不为空 则设置父节点的hasChildren 为1 - DjInspectImprove parent = baseMapper.selectById(djInspectImprove.getPid()); - if(parent!=null && !"1".equals(parent.getHasChild())){ - parent.setHasChild("1"); - baseMapper.updateById(parent); - } - } - baseMapper.insert(djInspectImprove); - } - - @Override - public void updateDjInspectImprove(DjInspectImprove djInspectImprove) { - DjInspectImprove entity = this.getById(djInspectImprove.getId()); - if(entity==null) { - throw new JeecgBootException("未找到对应实体"); - } - String old_pid = entity.getPid(); - String new_pid = djInspectImprove.getPid(); - if(!old_pid.equals(new_pid)) { - updateOldParentNode(old_pid); - if(oConvertUtils.isEmpty(new_pid)){ - djInspectImprove.setPid(IDjInspectImproveService.ROOT_PID_VALUE); - } - if(!IDjInspectImproveService.ROOT_PID_VALUE.equals(djInspectImprove.getPid())) { - baseMapper.updateTreeNodeStatus(djInspectImprove.getPid(), IDjInspectImproveService.HASCHILD); - } - } - baseMapper.updateById(djInspectImprove); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteDjInspectImprove(String id) throws JeecgBootException { - //查询选中节点下所有子节点一并删除 - id = this.queryTreeChildIds(id); - if(id.indexOf(",")>0) { - StringBuffer sb = new StringBuffer(); - String[] idArr = id.split(","); - for (String idVal : idArr) { - if(idVal != null){ - DjInspectImprove djInspectImprove = this.getById(idVal); - String pidVal = djInspectImprove.getPid(); - //查询此节点上一级是否还有其他子节点 - List dataList = baseMapper.selectList(new QueryWrapper().eq("pid", pidVal).notIn("id",Arrays.asList(idArr))); - boolean flag = (dataList == null || dataList.size() == 0) && !Arrays.asList(idArr).contains(pidVal) && !sb.toString().contains(pidVal); - if(flag){ - //如果当前节点原本有子节点 现在木有了,更新状态 - sb.append(pidVal).append(","); - } - } - } - //批量删除节点 - baseMapper.deleteBatchIds(Arrays.asList(idArr)); - //修改已无子节点的标识 - String[] pidArr = sb.toString().split(","); - for(String pid : pidArr){ - this.updateOldParentNode(pid); - } - }else{ - DjInspectImprove djInspectImprove = this.getById(id); - if(djInspectImprove==null) { - throw new JeecgBootException("未找到对应实体"); - } - updateOldParentNode(djInspectImprove.getPid()); - baseMapper.deleteById(id); - } - } - - @Override - public List queryTreeListNoPage(QueryWrapper queryWrapper) { - List dataList = baseMapper.selectList(queryWrapper); - List mapList = new ArrayList<>(); - for(DjInspectImprove data : dataList){ - String pidVal = data.getPid(); - //递归查询子节点的根节点 - if(pidVal != null && !IDjInspectImproveService.NOCHILD.equals(pidVal)){ - DjInspectImprove rootVal = this.getTreeRoot(pidVal); - if(rootVal != null && !mapList.contains(rootVal)){ - mapList.add(rootVal); - } - }else{ - if(!mapList.contains(data)){ - mapList.add(data); - } - } - } - return mapList; - } - - @Override - public List queryListByCode(String parentCode) { - String pid = ROOT_PID_VALUE; - if (oConvertUtils.isNotEmpty(parentCode)) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(DjInspectImprove::getPid, parentCode); - List list = baseMapper.selectList(queryWrapper); - if (list == null || list.size() == 0) { - throw new JeecgBootException("该编码【" + parentCode + "】不存在,请核实!"); - } - if (list.size() > 1) { - throw new JeecgBootException("该编码【" + parentCode + "】存在多个,请核实!"); - } - pid = list.get(0).getId(); - } - return baseMapper.queryListByPid(pid, null); - } - - @Override - public List queryListByPid(String pid) { - if (oConvertUtils.isEmpty(pid)) { - pid = ROOT_PID_VALUE; - } - return baseMapper.queryListByPid(pid, null); - } - - /** - * 根据所传pid查询旧的父级节点的子节点并修改相应状态值 - * @param pid - */ - private void updateOldParentNode(String pid) { - if(!IDjInspectImproveService.ROOT_PID_VALUE.equals(pid)) { - Long count = baseMapper.selectCount(new QueryWrapper().eq("pid", pid)); - if(count==null || count<=1) { - baseMapper.updateTreeNodeStatus(pid, IDjInspectImproveService.NOCHILD); - } - } - } - - /** - * 递归查询节点的根节点 - * @param pidVal - * @return - */ - private DjInspectImprove getTreeRoot(String pidVal){ - DjInspectImprove data = baseMapper.selectById(pidVal); - if(data != null && !IDjInspectImproveService.ROOT_PID_VALUE.equals(data.getPid())){ - return this.getTreeRoot(data.getPid()); - }else{ - return data; - } - } - - /** - * 根据id查询所有子节点id - * @param ids - * @return - */ - private String queryTreeChildIds(String ids) { - //获取id数组 - String[] idArr = ids.split(","); - StringBuffer sb = new StringBuffer(); - for (String pidVal : idArr) { - if(pidVal != null){ - if(!sb.toString().contains(pidVal)){ - if(sb.toString().length() > 0){ - sb.append(","); - } - sb.append(pidVal); - this.getTreeChildIds(pidVal,sb); - } - } - } - return sb.toString(); - } - - /** - * 递归查询所有子节点 - * @param pidVal - * @param sb - * @return - */ - private StringBuffer getTreeChildIds(String pidVal,StringBuffer sb){ - List dataList = baseMapper.selectList(new QueryWrapper().eq("pid", pidVal)); - if(dataList != null && dataList.size()>0){ - for(DjInspectImprove tree : dataList) { - if(!sb.toString().contains(tree.getId())){ - sb.append(",").append(tree.getId()); - } - this.getTreeChildIds(tree.getId(),sb); - } - } - return sb; - } - -} diff --git a/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/InspectImproveFlowTest.java b/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/InspectImproveFlowTest.java index 9c7c1be..47b1b9d 100644 --- a/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/InspectImproveFlowTest.java +++ b/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/InspectImproveFlowTest.java @@ -70,8 +70,8 @@ class InspectImproveFlowTest { lenient().when(orgConfig.getDept()).thenReturn(dept); lenient().when(orgConfig.getRole()).thenReturn(role); - // IDjInspectImproveService, FlowNodeExpression 未使用,传 null - flow = new InspectImproveFlow(inspectImproveConfig, orgConfig, null, null, + // FlowNodeExpression 未使用,传 null + flow = new InspectImproveFlow(inspectImproveConfig, orgConfig, null, iSysBaseAPI, dqInspectTaskService, runtimeService); } diff --git a/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterDqLeaderApproveListenerTest.java b/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterDqLeaderApproveListenerTest.java index b2bbd67..f288b5d 100644 --- a/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterDqLeaderApproveListenerTest.java +++ b/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterDqLeaderApproveListenerTest.java @@ -25,7 +25,7 @@ class AfterDqLeaderApproveListenerTest { when(delegateTask.getProcessInstanceId()).thenReturn("proc-001"); // inspectImproveConfig and djInspectImproveService 在此监听器中未使用,传 null - new AfterDqLeaderApproveListener(null, null, runtimeService).notify(delegateTask); + new AfterDqLeaderApproveListener(null, runtimeService).notify(delegateTask); verify(runtimeService).setVariable("proc-001", InspectConstant.DQ_DEPT_LEADER_KEY, "zhangsan"); } @@ -34,7 +34,7 @@ class AfterDqLeaderApproveListenerTest { void shouldSkipWhenAssigneeIsNull() { when(delegateTask.getAssignee()).thenReturn(null); - new AfterDqLeaderApproveListener(null, null, runtimeService).notify(delegateTask); + new AfterDqLeaderApproveListener(null, runtimeService).notify(delegateTask); verify(runtimeService, never()).setVariable(any(), any(), any()); } diff --git a/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterImplDeptLeaderApproveListenerTest.java b/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterImplDeptLeaderApproveListenerTest.java index eedf323..9c0f159 100644 --- a/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterImplDeptLeaderApproveListenerTest.java +++ b/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterImplDeptLeaderApproveListenerTest.java @@ -24,7 +24,7 @@ class AfterImplDeptLeaderApproveListenerTest { when(delegateTask.getAssignee()).thenReturn("lisi"); when(delegateTask.getProcessInstanceId()).thenReturn("proc-002"); - new AfterImplDeptLeaderApproveListener(null, null, runtimeService).notify(delegateTask); + new AfterImplDeptLeaderApproveListener(null, runtimeService).notify(delegateTask); verify(runtimeService).setVariable("proc-002", InspectConstant.IMPL_DEPT_LEADER_KEY, "lisi"); } @@ -33,7 +33,7 @@ class AfterImplDeptLeaderApproveListenerTest { void shouldSkipWhenAssigneeIsNull() { when(delegateTask.getAssignee()).thenReturn(null); - new AfterImplDeptLeaderApproveListener(null, null, runtimeService).notify(delegateTask); + new AfterImplDeptLeaderApproveListener(null, runtimeService).notify(delegateTask); verify(runtimeService, never()).setVariable(any(), any(), any()); } diff --git a/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterInspectImproveCompleteListenerTest.java b/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterInspectImproveCompleteListenerTest.java deleted file mode 100644 index 8ed7d00..0000000 --- a/jeecg-module-supervision/src/test/java/org/jeecg/modules/supervision/inspectimprove/listener/AfterInspectImproveCompleteListenerTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.jeecg.modules.supervision.inspectimprove.listener; - -import static org.mockito.Mockito.*; - -import org.flowable.task.service.delegate.DelegateTask; -import org.jeecg.modules.supervision.inspectimprove.config.InspectImproveConfig; -import org.jeecg.modules.supervision.inspectimprove.config.InspectImproveConfig.InspectImproveProperties; -import org.jeecg.modules.supervision.inspectimprove.entity.DjInspectImprove; -import org.jeecg.modules.supervision.inspectimprove.service.IDjInspectImproveService; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -@ExtendWith(MockitoExtension.class) -class AfterInspectImproveCompleteListenerTest { - - @Mock - private InspectImproveConfig inspectImproveConfig; - - @Mock - private IDjInspectImproveService djInspectImproveService; - - @Mock - private DelegateTask delegateTask; - - private AfterInspectImproveCompleteListener listener; - - @BeforeEach - void setUp() { - InspectImproveProperties props = new InspectImproveProperties(); - props.setBusinessKey("businessKey"); - when(inspectImproveConfig.getInspectImprove()).thenReturn(props); - - listener = new AfterInspectImproveCompleteListener(inspectImproveConfig, djInspectImproveService); - } - - @Test - void shouldSkipWhenBusinessKeyIsNull() { - when(delegateTask.getVariable("businessKey")).thenReturn(null); - - listener.notify(delegateTask); - - verify(djInspectImproveService, never()).getById(any()); - } - - @Test - void shouldSkipWhenBusinessKeyIsEmpty() { - when(delegateTask.getVariable("businessKey")).thenReturn(""); - - listener.notify(delegateTask); - - verify(djInspectImproveService, never()).getById(any()); - } - - @Test - void shouldSkipWhenEntityNotFound() { - when(delegateTask.getVariable("businessKey")).thenReturn("biz-001"); - when(djInspectImproveService.getById("biz-001")).thenReturn(null); - - listener.notify(delegateTask); - - verify(djInspectImproveService).getById("biz-001"); - } - - @Test - void shouldNotThrowWhenEntityExists() { - when(delegateTask.getVariable("businessKey")).thenReturn("biz-001"); - when(djInspectImproveService.getById("biz-001")).thenReturn(new DjInspectImprove()); - - // 当前实现仅有 TODO,不应抛异常 - listener.notify(delegateTask); - - verify(djInspectImproveService).getById("biz-001"); - } -} diff --git a/sql-changelog/README.md b/sql-changelog/README.md index e512ac6..a9719c0 100644 --- a/sql-changelog/README.md +++ b/sql-changelog/README.md @@ -26,6 +26,7 @@ YYYYMMDD_描述.sql | 2026-08-05 | DDL | `20260805_系统日志表新增操作人密级字段.sql` | sys_log 新增 user_security_level 列,记录操作人密级 | | 2026-08-05 | DDL | `20260805_系统日志表新增操作结果字段.sql` | sys_log 新增 operate_result 列,记录操作日志成功/失败 | | 2026-08-06 | DML | `20260806_纪检JJ部门用户挂靠修复.sql` | jj_worker_01/jj_leader_01 挂靠修正到纪检部门 2054466800692432898 | +| 2026-08-06 | DDL | `20260806_删除遗留dj_inspect_improve表.sql` | 删除遗留孤立实体 dj_inspect_improve 表 | ## 使用方式 diff --git a/sql-changelog/ddl/20260806_删除遗留dj_inspect_improve表.sql b/sql-changelog/ddl/20260806_删除遗留dj_inspect_improve表.sql new file mode 100644 index 0000000..1648964 --- /dev/null +++ b/sql-changelog/ddl/20260806_删除遗留dj_inspect_improve表.sql @@ -0,0 +1,8 @@ +-- 删除遗留孤立实体 dj_inspect_improve 表 +-- 背景:DjInspectImprove 实体/控制器/服务为遗留代码——无前端页面、提升/销号流程均不引用 +-- (InspectImproveFlow 注入的 djInspectImproveService 从未被调用)、代码库外部无引用。 +-- 且表结构(缺 pid/has_child/del_flag/bpm_status 列)与树表设计的实体不匹配。 +-- 正确业务模型为:问题表 dq_inspect_problem + 具体措施表 dq_inspect_task。 +-- 执行前请确认目标环境该表无需要保留的数据(本环境已确认 0 行)。 + +DROP TABLE IF EXISTS dj_inspect_improve;