Merge remote-tracking branch 'origin/fourthStage' into fourthStage

This commit is contained in:
yjz
2024-01-31 19:37:19 +08:00
13 changed files with 1870 additions and 1387 deletions
@@ -59,6 +59,8 @@ public class ActivitiController {
@Resource
private HistoryService historyService;
@Resource
private RuntimeService runtimeService;
@Resource
private TaskService taskService;
@Resource
private ProcessNodeService processNodeService;
@@ -105,7 +107,7 @@ public class ActivitiController {
map1.put("流程实例id", processInstanceId);
map1.put("当前活动Id", processInstance.getActivityId());
String mainDrafter = map.get("mainDrafter").toString();
//String mainDrafter = map.get("mainDrafter").toString();
return Result.OK(map1);
}
@@ -173,6 +175,13 @@ public class ActivitiController {
return Result.OK();
}
@GetMapping("/deleteProcessInstance")
@ApiOperation(value = "删除流程实例", notes = "删除流程实例")
public Result<Object> deleteProcessInstance(@RequestParam(value = "id", required = false) String id) {
runtimeService.deleteProcessInstance(id,"删除");
return Result.OK();
}
@GetMapping("/deleteDeployment")
@ApiOperation(value = "删除已部署的流程定义", notes = "删除已部署的流程定义")
public Result<Object> deleteDeployment(@RequestParam(value = "id", required = false) String id) {
@@ -128,7 +128,7 @@ public class MyGlobalEventListener implements ActivitiEventListener {
wrapper.eq(ProcessNode::getNodeName,name);
wrapper.eq(ProcessNode::getIsView, YesOrNoEnum.YES.getValue());
int count = processNodeService.count(wrapper);
if (count == 0){
if (count == 0 || "123".equals(assignee)){
return;
}
//新增待审批记录
@@ -12,6 +12,7 @@ public class ProcessProjectAssessCommon {
public static final String DESIGN_ENGINEER_LIST = "designEngineerList";
public static final String DESIGN_ENGINEER_LIST_SIZE = "designEngineerListSize";
public static final String PASS = "pass";
public static final String SKIP = "skip";
public static final String EXECUTION_ID = "executionId";
//法规工程师发起
public static final String FGGCSFQ = "fggcsfq";
@@ -911,5 +911,15 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
String parentExecutionId = (String) ThreadLocalUtil.get(ProcessProjectAssessCommon.EXECUTION_ID);
//delegateTask.setVariableLocal(ProcessProjectAssessCommon.EXECUTION_ID,parentExecutionId);
delegateTask.setFormKey(parentExecutionId);
if ("123".equals(delegateTask.getAssignee())) {
runtimeService.setVariable(delegateTask.getExecutionId(),ProcessProjectAssessCommon.SKIP,true);
if (!delegateTask.getName().contains("自动")) {
Map<String, Object> variables = new HashMap<>();
variables.put(ProcessProjectAssessCommon.SKIP, true);
taskService.complete(delegateTask.getId(), variables);
}
}else {
runtimeService.setVariable(delegateTask.getExecutionId(),ProcessProjectAssessCommon.SKIP,false);
}
}
}
@@ -522,6 +522,12 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
if (notInvolvedModuleOwnerList.size() == 0){
notInvolvedModuleOwnerList.add("123");
}
if (moduleOwnerList.size() == 0){
moduleOwnerList.add("123");
}
variables.put(ProcessProjectStandardCommon.NOT_INVOLVED_MODULE_OWNER_LIST, notInvolvedModuleOwnerList);
variables.put(ProcessProjectStandardCommon.NOT_INVOLVED_MODULE_OWNER_LIST_SIZE, notInvolvedModuleOwnerList.size());
variables.put(ProcessProjectStandardCommon.MODULE_OWNER_LIST, moduleOwnerList);
@@ -24,120 +24,121 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
/**
/**
* @Description: 问答库-问题
* @Author: jero-boot
* @Date: 2023-09-28
* @Date: 2023-09-28
* @Version: V1.0
*/
@Api(tags="问答库")
@Api(tags = "问答库")
@RestController
@RequestMapping("/laws/library/lawsProblemLibrary")
@Slf4j
public class LawsProblemLibraryController extends JeroController<LawsProblemLibrary, ILawsProblemLibraryService> {
@Autowired
private ILawsProblemLibraryService lawsProblemLibraryService;
@AutoLog(value = "问答库-分页列表查询")
@ApiOperation(value="问答库-分页列表查询", notes="问答库-问题-分页列表查询")
@GetMapping(value = "/page")
@RequiresPermissions("businessSupport:questionAnswer:search")
public Result<IPage<LawsProblemLibrary>> queryPageList(LawsProblemLibrary lawsProblemLibrary,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
IPage<LawsProblemLibrary> pageList = lawsProblemLibraryService.queryPage(lawsProblemLibrary, pageNo, pageSize, req);
return Result.OK(pageList);
}
@Autowired
private ILawsProblemLibraryService lawsProblemLibraryService;
@AutoLog(value = "问答库-提出问题")
@ApiOperation(value="问答库-提出问题", notes="问答库-提出问题")
@PostMapping(value = "/addProblem")
@RequiresPermissions("businessSupport:questionAnswer:quiz")
public Result<T> addProblem(@Validated @RequestBody LawsProblemLibrary lawsProblemLibrary) {
lawsProblemLibraryService.addProblem(lawsProblemLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-分页列表查询")
@ApiOperation(value = "问答库-分页列表查询", notes = "问答库-问题-分页列表查询")
@GetMapping(value = "/page")
@RequiresPermissions("businessSupport:questionAnswer:search")
public Result<IPage<LawsProblemLibrary>> queryPageList(LawsProblemLibrary lawsProblemLibrary,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
IPage<LawsProblemLibrary> pageList = lawsProblemLibraryService.queryPage(lawsProblemLibrary, pageNo, pageSize, req);
return Result.OK(pageList);
}
@AutoLog(value = "国内标准-提出问题")
@ApiOperation(value="国内标准-提出问题", notes="国内标准-提出问题")
@PostMapping(value = "/addProblem/GB")
@RequiresPermissions("domesticStandard:submitQuestion")
public Result<T> addProblemGB(@Validated @RequestBody LawsProblemLibrary lawsProblemLibrary) {
lawsProblemLibrary.setType("1");
lawsProblemLibraryService.addProblem(lawsProblemLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-提出问题")
@ApiOperation(value = "问答库-提出问题", notes = "问答库-提出问题")
@PostMapping(value = "/addProblem")
@RequiresPermissions("businessSupport:questionAnswer:quiz")
public Result<T> addProblem(@Validated @RequestBody LawsProblemLibrary lawsProblemLibrary) {
lawsProblemLibraryService.addProblem(lawsProblemLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "海外标准-提出问题")
@ApiOperation(value="海外标准-提出问题", notes="海外标准-提出问题")
@PostMapping(value = "/addProblem/FB")
@RequiresPermissions("overseasStandard:submitQuestion")
public Result<T> addProblemFB(@Validated @RequestBody LawsProblemLibrary lawsProblemLibrary) {
lawsProblemLibrary.setType("2");
lawsProblemLibraryService.addProblem(lawsProblemLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "国内标准-提出问题")
@ApiOperation(value = "国内标准-提出问题", notes = "国内标准-提出问题")
@PostMapping(value = "/addProblem/GB")
@RequiresPermissions("domesticStandard:submitQuestion")
public Result<T> addProblemGB(@Validated @RequestBody LawsProblemLibrary lawsProblemLibrary) {
lawsProblemLibrary.setType("1");
lawsProblemLibraryService.addProblem(lawsProblemLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "企业标准-提出问题")
@ApiOperation(value="企业标准-提出问题", notes="企业标准-提出问题")
@PostMapping(value = "/addProblem/QB")
@RequiresPermissions("enterpriseStandard:detail:submitQuestion")
public Result<T> addProblemQB(@Validated @RequestBody LawsProblemLibrary lawsProblemLibrary) {
lawsProblemLibrary.setType("3");
lawsProblemLibraryService.addProblem(lawsProblemLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "海外标准-提出问题")
@ApiOperation(value = "海外标准-提出问题", notes = "海外标准-提出问题")
@PostMapping(value = "/addProblem/FB")
@RequiresPermissions("overseasStandard:submitQuestion")
public Result<T> addProblemFB(@Validated @RequestBody LawsProblemLibrary lawsProblemLibrary) {
lawsProblemLibrary.setType("2");
lawsProblemLibraryService.addProblem(lawsProblemLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-回答问题")
@ApiOperation(value="问答库-回答问题", notes="问答库-回答问题")
@PostMapping(value = "/addAnswer")
@RequiresPermissions("quiz:detail:answerSubmit")
public Result<T> addAnswer(@Validated @RequestBody LawsAnswerLibrary lawsAnswerLibrary) {
lawsProblemLibraryService.addAnswer(lawsAnswerLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "企业标准-提出问题")
@ApiOperation(value = "企业标准-提出问题", notes = "企业标准-提出问题")
@PostMapping(value = "/addProblem/QB")
@RequiresPermissions("enterpriseStandard:detail:submitQuestion")
public Result<T> addProblemQB(@Validated @RequestBody LawsProblemLibrary lawsProblemLibrary) {
lawsProblemLibrary.setType("3");
lawsProblemLibraryService.addProblem(lawsProblemLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-通过id查询")
@ApiOperation(value="问答库-通过id查询", notes="问答库-通过id查询")
@GetMapping(value = "/queryById")
@Translation
@RequiresPermissions("businessSupport:questionAnswer:detail")
public Result<LawsProblemLibrary> queryById(@RequestParam(name="id") String id) {
LawsProblemLibrary lawsProblemLibrary = lawsProblemLibraryService.queryById(id);
return Result.OK(lawsProblemLibrary);
}
@AutoLog(value = "问答库-回答问题")
@ApiOperation(value = "问答库-回答问题", notes = "问答库-回答问题")
@PostMapping(value = "/addAnswer")
@RequiresPermissions("quiz:detail:answerSubmit")
public Result<T> addAnswer(@Validated @RequestBody LawsAnswerLibrary lawsAnswerLibrary) {
lawsProblemLibraryService.addAnswer(lawsAnswerLibrary);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-通过id删除问题")
@ApiOperation(value="问答库-通过id删除问题", notes="问答库-通过id删除问题")
@PostMapping(value = "/deleteProblem")
@RequiresPermissions("businessSupport:questionAnswer:delete")
public Result<T> deleteProblem(@RequestBody Map<String, String> map) {
if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){
return Result.error(MessageUtils.getMessage(ResultCommon.SELECT_DATA));
}
lawsProblemLibraryService.deleteProblem(map.get("id"));
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-通过id查询")
@ApiOperation(value = "问答库-通过id查询", notes = "问答库-通过id查询")
@GetMapping(value = "/queryById")
@Translation
@RequiresPermissions("businessSupport:questionAnswer:detail")
public Result<LawsProblemLibrary> queryById(@RequestParam(name = "id") String id) {
LawsProblemLibrary lawsProblemLibrary = lawsProblemLibraryService.queryById(id);
return Result.OK(lawsProblemLibrary);
}
@AutoLog(value = "问答库-通过id删除回答")
@ApiOperation(value="问答库-通过id删除回答", notes="问答库-通过id删除回答")
@PostMapping(value = "/deleteAnswer")
@RequiresPermissions("quiz:detail:deleteAnswer")
public Result<T> deleteAnswer(@RequestBody Map<String, String> map) {
if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){
return Result.error(MessageUtils.getMessage(ResultCommon.SELECT_DATA));
}
lawsProblemLibraryService.deleteAnswer(map.get("id"));
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-通过id删除问题")
@ApiOperation(value = "问答库-通过id删除问题", notes = "问答库-通过id删除问题")
@PostMapping(value = "/deleteProblem")
@RequiresPermissions("businessSupport:questionAnswer:delete")
public Result<T> deleteProblem(@RequestBody Map<String, String> map) {
if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) {
return Result.error(MessageUtils.getMessage(ResultCommon.SELECT_DATA));
}
lawsProblemLibraryService.deleteProblem(map.get("id"));
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-是否置顶")
@ApiOperation(value="问答库-是否置顶", notes="问答库-是否置顶")
@GetMapping(value = "/isTop")
@RequiresPermissions("quiz:detail:topOrCancel")
public Result<T> isTop(@RequestParam(name="id") String id) {
lawsProblemLibraryService.isTop(id);
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-通过id删除回答")
@ApiOperation(value = "问答库-通过id删除回答", notes = "问答库-通过id删除回答")
@PostMapping(value = "/deleteAnswer")
@RequiresPermissions("quiz:detail:deleteAnswer")
public Result<T> deleteAnswer(@RequestBody Map<String, String> map) {
if (!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))) {
return Result.error(MessageUtils.getMessage(ResultCommon.SELECT_DATA));
}
lawsProblemLibraryService.deleteAnswer(map.get("id"));
return Result.OK(ResultCommon.OK);
}
@AutoLog(value = "问答库-是否置顶")
@ApiOperation(value = "问答库-是否置顶", notes = "问答库-是否置顶")
@GetMapping(value = "/isTop")
@RequiresPermissions("quiz:detail:topOrCancel")
public Result<T> isTop(@RequestParam(name = "id") String id) {
lawsProblemLibraryService.isTop(id);
return Result.OK(ResultCommon.OK);
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.laws.library.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -16,6 +17,7 @@ import com.jero.modules.laws.library.entity.LawsProblemLibrary;
import com.jero.modules.laws.library.mapper.LawsProblemLibraryMapper;
import com.jero.modules.laws.library.service.ILawsAnswerLibraryService;
import com.jero.modules.laws.library.service.ILawsProblemLibraryService;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
@@ -25,6 +27,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
@@ -36,7 +39,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.query.QueryGenerator;
import javax.annotation.Resource;
import javax.management.relation.Role;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -44,7 +49,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* @Description: 问答库-问题
* @Author: jero-boot
* @Date: 2023-09-28
* @Date: 2023-09-28
* @Version: V1.0
*/
@Service
@@ -62,6 +67,12 @@ public class LawsProblemLibraryServiceImpl extends ServiceImpl<LawsProblemLibrar
@Resource
private SendMessageAPI sendMessageAPI;
@Resource
private ISysUserService userService;
@Value("${adminRoleCode}")
private String adminRoleCode;
@Override
public IPage<LawsProblemLibrary> queryPage(LawsProblemLibrary lawsProblemLibrary, Integer pageNo, Integer pageSize,
HttpServletRequest req) {
@@ -115,6 +126,12 @@ public class LawsProblemLibraryServiceImpl extends ServiceImpl<LawsProblemLibrar
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "problemId");
}
// 处理水平越权 自己提的问题自己不能回复
LawsProblemLibrary problem = getById(lawsAnswerLibrary.getProblemId());
if (loginUser.getUsername().equals(problem.getCreateBy())) {
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
lawsAnswerLibrary.setUserId(loginUser.getId());
lawsAnswerLibrary.setOrgCode(loginUser.getOrgCode());
lawsAnswerLibrary.setIsTop(0);
@@ -137,7 +154,7 @@ public class LawsProblemLibraryServiceImpl extends ServiceImpl<LawsProblemLibrar
@Override
public LawsProblemLibrary queryById(String id) {
LawsProblemLibrary lawsProblemLibrary = getById(id);
if(Objects.isNull(lawsProblemLibrary)) {
if (Objects.isNull(lawsProblemLibrary)) {
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
@@ -183,6 +200,12 @@ public class LawsProblemLibraryServiceImpl extends ServiceImpl<LawsProblemLibrar
**/
@Override
public void deleteProblem(String id) {
// 处理水平越权 只有创建人可以删除问题
LoginUser currentUser = UserUtils.getCurrentUser();
LawsProblemLibrary problem = getById(id);
if (!currentUser.getUsername().equals(problem.getCreateBy())) {
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
removeById(id);
}
@@ -193,6 +216,19 @@ public class LawsProblemLibraryServiceImpl extends ServiceImpl<LawsProblemLibrar
**/
@Override
public void deleteAnswer(String id) {
// 处理水平越权 管理员和创建者才可以删除所有评论 其他人只能删除自己的评论
LoginUser currentUser = UserUtils.getCurrentUser();
List<String> userRoleList = userService.getRole(currentUser.getUsername());
LawsAnswerLibrary answer = lawsAnswerLibraryService.getById(id);
LawsProblemLibrary problem = getById(answer.getProblemId());
// 如果是管理员权限 则跳过验证
List<String> adminRoleList = Arrays.asList(adminRoleCode.split(","));
// 如果不是管理员权限 且不是问题创建者 且不是回答创建者 则没有权限
if (adminRoleList.stream().noneMatch(userRoleList::contains)) {
if (!currentUser.getUsername().equals(problem.getCreateBy())) {
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
}
lawsAnswerLibraryService.removeById(id);
}
@@ -204,9 +240,22 @@ public class LawsProblemLibraryServiceImpl extends ServiceImpl<LawsProblemLibrar
@Override
public void isTop(String id) {
LawsAnswerLibrary lawsAnswerLibrary = lawsAnswerLibraryService.getById(id);
if(Objects.isNull(lawsAnswerLibrary)) {
if (Objects.isNull(lawsAnswerLibrary)) {
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
// 处理水平越权 管理员和创建者才可以删除所有评论 其他人只能删除自己的评论
LoginUser currentUser = UserUtils.getCurrentUser();
List<String> userRoleList = userService.getRole(currentUser.getUsername());
// 如果是管理员权限 则跳过验证
List<String> adminRoleList = Arrays.asList(adminRoleCode.split(","));
// 如果不是管理员权限 且不是问题创建者 且不是回答创建者 则没有权限
if (adminRoleList.stream().noneMatch(userRoleList::contains)) {
LawsProblemLibrary problem = getById(lawsAnswerLibrary.getProblemId());
if (!currentUser.getUsername().equals(problem.getCreateBy())) {
throw new JeroBootException(ResultCommon.NO_PERMISSION);
}
}
if (0 == lawsAnswerLibrary.getIsTop()) {
lawsAnswerLibrary.setIsTop(1);
// 发送消息
@@ -158,7 +158,9 @@ public class LawsEvaluationNotMetServiceImpl extends ServiceImpl<LawsEvaluationN
lawsEvaluationNotMet.setSource(source);
//如果待整改判断预警和超期
String state = lawsEvaluationNotMet.getState();
if (AssessCommon.TO_BE_RECTIFIED.equals(state)){
if (AssessCommon.TO_BE_RECTIFIED.equals(state)
||AssessCommon.OVERDUE.equals(state)
||AssessCommon.WARNING.equals(state)){
Date expectedTime = lawsEvaluationNotMet.getExpectedTime();
DateTime date = DateUtil.date();
DateTime theDayBefore = DateUtil.offsetDay(date, 1);
@@ -98,6 +98,7 @@ public class SysCommonController {
outputStream.write(buf, 0, len);
}
response.flushBuffer();
return;
} catch (Exception e) {
log.error(e.getMessage());
response.setStatus(404);