Bladeren bron

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

dzx 1 jaar geleden
bovenliggende
commit
4f52b3eb2e
16 gewijzigde bestanden met toevoegingen van 558 en 21 verwijderingen
  1. 1 0
      src/main/java/com/xjrsoft/module/form/service/IFormExecuteService.java
  2. 1 0
      src/main/java/com/xjrsoft/module/form/service/impl/FormExecuteServiceImpl.java
  3. 102 0
      src/main/java/com/xjrsoft/module/student/controller/BaseStudentAssessmentItemController.java
  4. 38 0
      src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentAssessmentItemDto.java
  5. 26 0
      src/main/java/com/xjrsoft/module/student/dto/BaseStudentAssessmentItemPageDto.java
  6. 32 0
      src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentAssessmentItemDto.java
  7. 88 0
      src/main/java/com/xjrsoft/module/student/entity/BaseStudentAssessmentItem.java
  8. 17 0
      src/main/java/com/xjrsoft/module/student/mapper/BaseStudentAssessmentItemMapper.java
  9. 17 0
      src/main/java/com/xjrsoft/module/student/service/IBaseStudentAssessmentItemService.java
  10. 25 0
      src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentItemServiceImpl.java
  11. 69 0
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentAssessmentItemPageVo.java
  12. 39 0
      src/main/java/com/xjrsoft/module/student/vo/BaseStudentAssessmentItemVo.java
  13. 0 1
      src/main/java/com/xjrsoft/module/workflow/controller/WorkflowExecuteController.java
  14. 1 1
      src/main/java/com/xjrsoft/module/workflow/listener/TaskDelegate.java
  15. 71 19
      src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java
  16. 31 0
      src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

+ 1 - 0
src/main/java/com/xjrsoft/module/form/service/IFormExecuteService.java

@@ -129,6 +129,7 @@ public interface IFormExecuteService {
      * @param dto
      * @return
      */
+
     Triple<Session, Boolean, Long> workflowAddOrUpdate(FormExecuteWorkflowUpdateDto dto);
 
     /**

+ 1 - 0
src/main/java/com/xjrsoft/module/form/service/impl/FormExecuteServiceImpl.java

@@ -1041,6 +1041,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
         if (mainTable.isPresent()) {
             String tableName = mainTable.get().getTableName();
 
+
             Entity entity = Entity.create(tableName);
 
             //获取表里所有字段

+ 102 - 0
src/main/java/com/xjrsoft/module/student/controller/BaseStudentAssessmentItemController.java

@@ -0,0 +1,102 @@
+package com.xjrsoft.module.student.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.student.dto.AddBaseStudentAssessmentItemDto;
+import com.xjrsoft.module.student.dto.UpdateBaseStudentAssessmentItemDto;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+
+import com.xjrsoft.module.student.dto.BaseStudentAssessmentItemPageDto;
+import com.xjrsoft.module.student.entity.BaseStudentAssessmentItem;
+import com.xjrsoft.module.student.service.IBaseStudentAssessmentItemService;
+import com.xjrsoft.module.student.vo.BaseStudentAssessmentItemPageVo;
+
+import com.xjrsoft.module.student.vo.BaseStudentAssessmentItemVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+* @title: 考核项目表
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/student" + "/baseStudentAssessmentItem")
+@Api(value = "/student"  + "/baseStudentAssessmentItem",tags = "考核项目表代码")
+@AllArgsConstructor
+public class BaseStudentAssessmentItemController {
+
+
+    private final IBaseStudentAssessmentItemService baseStudentAssessmentItemService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="考核项目表列表(分页)")
+    @SaCheckPermission("basestudentassessmentitem:detail")
+    public RT<PageOutput<BaseStudentAssessmentItemPageVo>> page(@Valid BaseStudentAssessmentItemPageDto dto){
+
+        LambdaQueryWrapper<BaseStudentAssessmentItem> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                    .orderByDesc(BaseStudentAssessmentItem::getId)
+                .select(BaseStudentAssessmentItem.class,x -> VoToColumnUtil.fieldsToColumns(BaseStudentAssessmentItemPageVo.class).contains(x.getProperty()));
+        IPage<BaseStudentAssessmentItem> page = baseStudentAssessmentItemService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<BaseStudentAssessmentItemPageVo> pageOutput = ConventPage.getPageOutput(page, BaseStudentAssessmentItemPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询考核项目表信息")
+    @SaCheckPermission("basestudentassessmentitem:detail")
+    public RT<BaseStudentAssessmentItemVo> info(@RequestParam Long id){
+        BaseStudentAssessmentItem baseStudentAssessmentItem = baseStudentAssessmentItemService.getById(id);
+        if (baseStudentAssessmentItem == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(baseStudentAssessmentItem, BaseStudentAssessmentItemVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增考核项目表")
+    @SaCheckPermission("basestudentassessmentitem:add")
+    public RT<Boolean> add(@Valid @RequestBody AddBaseStudentAssessmentItemDto dto){
+        BaseStudentAssessmentItem baseStudentAssessmentItem = BeanUtil.toBean(dto, BaseStudentAssessmentItem.class);
+        boolean isSuccess = baseStudentAssessmentItemService.save(baseStudentAssessmentItem);
+    return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改考核项目表")
+    @SaCheckPermission("basestudentassessmentitem:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateBaseStudentAssessmentItemDto dto){
+
+        BaseStudentAssessmentItem baseStudentAssessmentItem = BeanUtil.toBean(dto, BaseStudentAssessmentItem.class);
+        return RT.ok(baseStudentAssessmentItemService.updateById(baseStudentAssessmentItem));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除考核项目表")
+    @SaCheckPermission("basestudentassessmentitem:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(baseStudentAssessmentItemService.removeBatchByIds(ids));
+
+    }
+
+}

+ 38 - 0
src/main/java/com/xjrsoft/module/student/dto/AddBaseStudentAssessmentItemDto.java

@@ -0,0 +1,38 @@
+package com.xjrsoft.module.student.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 考核项目表
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@Data
+public class AddBaseStudentAssessmentItemDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 项目名称
+    */
+    @ApiModelProperty("项目名称")
+    private String name;
+    /**
+    * 学生考核类别(base_student_assessment_category)
+    */
+    @ApiModelProperty("学生考核类别(base_student_assessment_category)")
+    private Long baseStudentAssessmentCategoryId;
+
+}

+ 26 - 0
src/main/java/com/xjrsoft/module/student/dto/BaseStudentAssessmentItemPageDto.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.student.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+* @title: 考核项目表分页查询入参
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseStudentAssessmentItemPageDto extends PageInput {
+
+
+}

+ 32 - 0
src/main/java/com/xjrsoft/module/student/dto/UpdateBaseStudentAssessmentItemDto.java

@@ -0,0 +1,32 @@
+package com.xjrsoft.module.student.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.List;
+import java.util.Date;
+
+
+
+/**
+* @title: 考核项目表
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@Data
+public class UpdateBaseStudentAssessmentItemDto extends AddBaseStudentAssessmentItemDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+}

+ 88 - 0
src/main/java/com/xjrsoft/module/student/entity/BaseStudentAssessmentItem.java

@@ -0,0 +1,88 @@
+package com.xjrsoft.module.student.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+
+/**
+* @title: 考核项目表
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@Data
+@TableName("base_student_assessment_item")
+@ApiModel(value = "base_student_assessment_item", description = "考核项目表")
+public class BaseStudentAssessmentItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 项目名称
+    */
+    @ApiModelProperty("项目名称")
+    private String name;
+    /**
+    * 学生考核类别(base_student_assessment_category)
+    */
+    @ApiModelProperty("学生考核类别(base_student_assessment_category)")
+    private Long baseStudentAssessmentCategoryId;
+
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/student/mapper/BaseStudentAssessmentItemMapper.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.student.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.student.entity.BaseStudentAssessmentItem;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 考核项目表
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@Mapper
+public interface BaseStudentAssessmentItemMapper extends MPJBaseMapper<BaseStudentAssessmentItem> {
+
+}

+ 17 - 0
src/main/java/com/xjrsoft/module/student/service/IBaseStudentAssessmentItemService.java

@@ -0,0 +1,17 @@
+package com.xjrsoft.module.student.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.student.entity.BaseStudentAssessmentItem;
+import lombok.Data;
+import java.util.List;
+
+/**
+* @title: 考核项目表
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+
+public interface IBaseStudentAssessmentItemService extends MPJBaseService<BaseStudentAssessmentItem> {
+}

+ 25 - 0
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentItemServiceImpl.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.student.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.student.entity.BaseStudentAssessmentItem;
+import com.xjrsoft.module.student.mapper.BaseStudentAssessmentItemMapper;
+import com.xjrsoft.module.student.service.IBaseStudentAssessmentItemService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+
+/**
+* @title: 考核项目表
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BaseStudentAssessmentItemServiceImpl extends MPJBaseServiceImpl<BaseStudentAssessmentItemMapper, BaseStudentAssessmentItem> implements IBaseStudentAssessmentItemService {
+}

+ 69 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentAssessmentItemPageVo.java

@@ -0,0 +1,69 @@
+package com.xjrsoft.module.student.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import com.xjrsoft.common.annotation.Trans;
+import com.xjrsoft.common.enums.TransType;
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* @title: 考核项目表分页列表出参
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@Data
+public class BaseStudentAssessmentItemPageVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Integer enabledMark;
+    /**
+    * 项目名称
+    */
+    @ApiModelProperty("项目名称")
+    private String name;
+    /**
+    * 学生考核类别(base_student_assessment_category)
+    */
+    @ApiModelProperty("学生考核类别(base_student_assessment_category)")
+    private Long baseStudentAssessmentCategoryId;
+
+}

+ 39 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentAssessmentItemVo.java

@@ -0,0 +1,39 @@
+package com.xjrsoft.module.student.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalTime;
+import java.time.LocalDateTime;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Date;
+
+/**
+* @title: 考核项目表表单出参
+* @Author dzx
+* @Date: 2024-03-05
+* @Version 1.0
+*/
+@Data
+public class BaseStudentAssessmentItemVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 项目名称
+    */
+    @ApiModelProperty("项目名称")
+    private String name;
+    /**
+    * 学生考核类别(base_student_assessment_category)
+    */
+    @ApiModelProperty("学生考核类别(base_student_assessment_category)")
+    private Long baseStudentAssessmentCategoryId;
+
+
+
+}

+ 0 - 1
src/main/java/com/xjrsoft/module/workflow/controller/WorkflowExecuteController.java

@@ -10,7 +10,6 @@ import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.workflow.dto.*;
 import com.xjrsoft.module.workflow.service.IWorkflowExecuteService;
 import com.xjrsoft.module.workflow.vo.PendingTaskVo;
-import com.xjrsoft.module.workflow.vo.ProcessRecordListVo;
 import com.xjrsoft.module.workflow.vo.UserDefinedProcessRecordListVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 1 - 1
src/main/java/com/xjrsoft/module/workflow/listener/TaskDelegate.java

@@ -486,7 +486,7 @@ public class TaskDelegate implements TaskListener {
         record.setSchemaId(schemaId);
         record.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
         record.setRecordTime(LocalDateTime.now());
-        record.setUsageScenario(1);
+        record.setUsageScenario(2);
         record.setOperateInfo(message);
 
         xjrWorkflowOperateRecordService.save(record);

+ 71 - 19
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -95,6 +95,8 @@ import org.ssssssss.magicapi.core.service.MagicAPIService;
 
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -1706,7 +1708,6 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
                 variableMap.putValue(formConfig.getKey(), formData);
 
                 //判断此表单是否已经提交过
-
                 if (formRelationList.stream().anyMatch(r -> Objects.equals(r.getFormId(), formConfig.getFormId()) && r.getFormKey().equals(formConfig.getKey()))) {
 
                     //如果提交过 默认是update
@@ -2023,6 +2024,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
             if (e.getMessage().contains("sequence flow")) {
                 throw new MyException("流转条件错误,请检查流转条件设置!");
             } else {
+
                 throw new MyException("表单提交错误, 请联系系统管理员!");
             }
         }
@@ -4280,7 +4282,10 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
      * @return
      */
     private List<ProcessRecordListVo> getCustomProcessRecordListVos(String processInstanceId, int onlySelf, Integer usageScenario) {
-
+        List<Integer> usageScenarioList = new ArrayList<>();
+        for (int i = 1; i <= usageScenario; i++){
+            usageScenarioList.add(i);
+        }
         User user = StpUtil.getTokenSession().get(GlobalConstant.LOGIN_USER_INFO_KEY, new User());
         List<Long> roleIds = StpUtil.getTokenSession().get(GlobalConstant.LOGIN_USER_ROLE_ID_KEY, new ArrayList<>());
         LambdaQueryWrapper<XjrWorkflowOperateRecord> workflowOperateRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -4312,7 +4317,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         } else {
             workflowOperateRecordLambdaQueryWrapper
                     .eq(XjrWorkflowOperateRecord::getProcessId, processInstanceId)
-                    .eq(XjrWorkflowOperateRecord::getUsageScenario, usageScenario)
+                    .in(XjrWorkflowOperateRecord::getUsageScenario, usageScenarioList)
                     .orderByAsc(XjrWorkflowOperateRecord::getRecordTime);
         }
 
@@ -4806,7 +4811,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         record.setSchemaId(schemaId);
         record.setNodeMultiType(WorkflowMultiInstanceType.NONE.getCode());
         record.setOperateInfo(message);
-        record.setUsageScenario(1);
+        record.setUsageScenario(2);
 
         xjrWorkflowOperateRecordService.save(record);
     }
@@ -5383,7 +5388,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
     @Override
     public List<UserDefinedProcessRecordListVo> listPrintApproveRecord(ApproveRecordListDto dto) {
-        List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0, 2);
+        List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0, 1);
 
         List<UserDefinedProcessRecordListVo> userDefinedProcessRecordListVos = new ArrayList<>();
         for(ProcessRecordListVo p : processRecordListVos){
@@ -5408,25 +5413,72 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
 
     @Override
     public List<UserDefinedProcessRecordListVo> listAuditApproveRecord(ApproveRecordListDto dto) {
-        List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0, 1);
+        List<ProcessRecordListVo> processRecordListVos = this.getCustomProcessRecordListVos(dto.getProcessId(), 0, 2);
 
         List<UserDefinedProcessRecordListVo> userDefinedProcessRecordListVos = new ArrayList<>();
         for(ProcessRecordListVo p : processRecordListVos){
             String comment = p.getComment();
             String[] commentArr = comment.split(",");
-            String[] approveUserNameArr = commentArr[0].split(":");
-            String[] approveResultArr = commentArr[1].split(":");
-            String[] approveCommentArr = commentArr[2].split(":");
-            userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
-                setNodeType(p.getNodeType());
-                setNodeName(p.getNodeName());
-                setComment(p.getComment());
-                setStartTime(p.getStartTime());
-                setCirculateMessage(p.getCirculateMessage());
-                setApproveUserName(approveUserNameArr[1]);
-                setApproveResult(approveResultArr[1]);
-                setApproveComment(approveCommentArr[1]);
-            }});
+            if(commentArr.length > 1){
+                String[] approveUserNameArr = commentArr[0].split(":");
+                String[] approveResultArr = commentArr[1].split(":");
+                String[] approveCommentArr = commentArr[2].split(":");
+                userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
+                    setNodeType(p.getNodeType());
+                    setNodeName(p.getNodeName());
+                    setComment(p.getComment());
+                    setStartTime(p.getStartTime());
+                    setCirculateMessage(p.getCirculateMessage());
+                    setApproveUserName(approveUserNameArr[1]);
+                    setApproveResult(approveResultArr[1]);
+                    setApproveComment(approveCommentArr[1]);
+                }});
+            }
+            if(p.getNodeName().equals("开始节点")) {
+                userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
+                    setNodeType(p.getNodeType());
+                    setComment(p.getComment());
+                    setStartTime(p.getStartTime());
+                    setCirculateMessage(p.getCirculateMessage());
+                    setNodeName("流程发起");
+                    setApproveResult("发起");
+                    Pattern pattern = Pattern.compile("【(.*?)】");
+                    Matcher matcher = pattern.matcher(p.getComment());
+                    if (matcher.find()) {
+                        setApproveUserName(matcher.group(1));
+                    }
+                    setApproveComment("发起流程");
+                }});
+            }
+
+            if(p.getNodeName().equals("结束节点")) {
+                userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
+                    setNodeType(p.getNodeType());
+                    setComment(p.getComment());
+                    setStartTime(p.getStartTime());
+                    setCirculateMessage(p.getCirculateMessage());
+                    setNodeName("流程结束");
+                    setApproveResult("完成");
+                    setApproveComment("结束流程");
+                }});
+            }
+
+            if(p.getComment().contains("准备审批")) {
+                userDefinedProcessRecordListVos.add(new UserDefinedProcessRecordListVo(){{
+                    setNodeType(p.getNodeType());
+                    setComment(p.getComment());
+                    setStartTime(p.getStartTime());
+                    setCirculateMessage(p.getCirculateMessage());
+                    setNodeName("准备审批");
+                    setApproveResult("准备审批");
+                    Pattern pattern = Pattern.compile("【(.*?)】");
+                    Matcher matcher = pattern.matcher(p.getComment());
+                    if (matcher.find()) {
+                        setApproveUserName(matcher.group(1));
+                    }
+                    setApproveComment("准备审批");
+                }});
+            }
         }
         return userDefinedProcessRecordListVos;
     }

+ 31 - 0
src/test/java/com/xjrsoft/xjrsoftboot/FreeMarkerGeneratorTest.java

@@ -2284,4 +2284,35 @@ public class FreeMarkerGeneratorTest {
         apiGeneratorService.generateCodes(params);
 
     }
+
+    /**
+     * 考核项目表
+     *
+     * @throws IOException
+     */
+    @Test
+    public void gcStudentAssessmentItem() throws IOException {
+        List<TableConfig> tableConfigs = new ArrayList<>();
+        TableConfig mainTable = new TableConfig();
+        mainTable.setTableName("base_student_assessment_item");//init_sql中的表名
+        mainTable.setIsMain(true);//是否是主表,一般默认为true
+        mainTable.setPkField(GlobalConstant.DEFAULT_PK);//设置主键
+        mainTable.setPkType(GlobalConstant.DEFAULT_PK_TYPE);//设置主键类型
+        tableConfigs.add(mainTable);
+
+        ApiGenerateCodesDto params = new ApiGenerateCodesDto();
+        params.setAuthor("dzx");//作者名称
+        params.setPackageName("student");//包名
+        params.setTableConfigs(tableConfigs);
+        params.setPage(true);//是否生成分页接口
+        params.setImport(false);//是否生成导入接口
+        params.setExport(false);//是否生成导出接口
+        params.setOutMainDir(true);//是否生成在主目录,前期测试可设置成false
+        params.setDs(ds);
+
+        IApiGeneratorService apiGeneratorService = new ApiGeneratorServiceImpl();
+
+        apiGeneratorService.generateCodes(params);
+
+    }
 }