| | |
| | | import com.ruoyi.common.constant.InsOrderTypeConstants; |
| | | import com.ruoyi.common.constant.MenuJumpPathConstants; |
| | | import com.ruoyi.common.core.domain.Result; |
| | | import com.ruoyi.common.core.domain.entity.SysMenu; |
| | | import com.ruoyi.common.core.domain.entity.InformationNotification; |
| | | import com.ruoyi.common.utils.DateImageUtil; |
| | | import com.ruoyi.common.utils.QueryWrappers; |
| | |
| | | import com.ruoyi.inspect.util.ReportSealLayoutUtil; |
| | | import com.ruoyi.inspect.util.ReportSignaturePictureUtils; |
| | | import com.ruoyi.system.mapper.UserMapper; |
| | | import com.ruoyi.system.service.ISysMenuService; |
| | | import com.ruoyi.system.service.InformationNotificationService; |
| | | import jakarta.annotation.Resource; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | |
| | | private InsProductMapper insProductMapper; |
| | | @Resource |
| | | private InformationNotificationService informationNotificationService; |
| | | @Resource |
| | | private ISysMenuService menuService; |
| | | @Value("${wordUrl}") |
| | | private String wordUrl; |
| | | @Value("${file.path}") |
| | |
| | | if (userId == null) { |
| | | throw new ErrorException("缺少审核人"); |
| | | } |
| | | ensureReportPreparationPermission(userId, "审核人"); |
| | | insReport.setExamineUserId(userId);//审核人 |
| | | insReport.setWriteTime(LocalDateTime.now());//提交时间 |
| | | //获取提交人的签名地址 |
| | |
| | | return 1; |
| | | } |
| | | |
| | | /** |
| | | * 指定审核人/批准人时,确认对方登录后能看到「报告编制」页面, |
| | | * 避免指定后登录只剩首页、无法继续审批。 |
| | | */ |
| | | private void ensureReportPreparationPermission(Integer userId, String userLabel) { |
| | | List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId.longValue()); |
| | | if (!containsReportPreparation(menus)) { |
| | | throw new ErrorException("所选" + userLabel + "没有「业务管理 → 报告编制」页面权限,请先在「系统管理 → 用户管理」为其分配对应角色"); |
| | | } |
| | | } |
| | | |
| | | private boolean containsReportPreparation(List<SysMenu> menus) { |
| | | if (CollectionUtils.isEmpty(menus)) { |
| | | return false; |
| | | } |
| | | for (SysMenu menu : menus) { |
| | | if (Long.valueOf(1129L).equals(menu.getMenuId()) |
| | | || "reportPreparation".equals(menu.getPath())) { |
| | | return true; |
| | | } |
| | | if (containsReportPreparation(menu.getChildren())) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | //审核 |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | if (userId == null) { |
| | | throw new ErrorException("缺少批准人"); |
| | | } |
| | | ensureReportPreparationPermission(userId, "批准人"); |
| | | if (Objects.equals(insReport.getExamineUserId(), userId)) { |
| | | throw new ErrorException("审核人和批准人不能为同一人,请重新选择批准人"); |
| | | } |