mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-28 16:58:43 +08:00 
			
		
		
		
	Merge branch 'master' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into feature/activiti
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| *.sql linguist-language=java | ||||
| @@ -0,0 +1,100 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.controller.form; | ||||
|  | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.*; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.convert.form.WfFormConvert; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.service.form.WfFormService; | ||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; | ||||
| import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | ||||
| import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiImplicitParam; | ||||
| import io.swagger.annotations.ApiOperation; | ||||
| import org.springframework.security.access.prepost.PreAuthorize; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import javax.servlet.http.HttpServletResponse; | ||||
| import javax.validation.Valid; | ||||
| import java.io.IOException; | ||||
| import java.util.Collection; | ||||
| import java.util.List; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||
| import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; | ||||
|  | ||||
| // TODO @风里雾里: Os=》Wf,/os 改成 /wl 开头。目前这个模块,咱先定位成给工作流用的 | ||||
| @Api(tags = "动态表单") | ||||
| @RestController | ||||
| @RequestMapping("/wl/form") | ||||
| @Validated | ||||
| public class WlFormController { | ||||
|  | ||||
|     @Resource | ||||
|     private WfFormService formService; | ||||
|  | ||||
|     @PostMapping("/create") | ||||
|     @ApiOperation("创建动态表单") | ||||
|     @PreAuthorize("@ss.hasPermission('os:form:create')") | ||||
|     public CommonResult<Long> createForm(@Valid @RequestBody WfFormCreateReqVO createReqVO) { | ||||
|         return success(formService.createForm(createReqVO)); | ||||
|     } | ||||
|  | ||||
|     @PutMapping("/update") | ||||
|     @ApiOperation("更新动态表单") | ||||
|     @PreAuthorize("@ss.hasPermission('os:form:update')") | ||||
|     public CommonResult<Boolean> updateForm(@Valid @RequestBody WfFormUpdateReqVO updateReqVO) { | ||||
|         formService.updateForm(updateReqVO); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @DeleteMapping("/delete") | ||||
|     @ApiOperation("删除动态表单") | ||||
|     @ApiImplicitParam(name = "id", value = "编号", required = true) | ||||
|     @PreAuthorize("@ss.hasPermission('os:form:delete')") | ||||
|     public CommonResult<Boolean> deleteForm(@RequestParam("id") Long id) { | ||||
|         formService.deleteForm(id); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/get") | ||||
|     @ApiOperation("获得动态表单") | ||||
|     @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | ||||
|     @PreAuthorize("@ss.hasPermission('os:form:query')") | ||||
|     public CommonResult<WfFormRespVO> getForm(@RequestParam("id") Long id) { | ||||
|         WfForm form = formService.getForm(id); | ||||
|         return success(WfFormConvert.INSTANCE.convert(form)); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/list") | ||||
|     @ApiOperation("获得动态表单列表") | ||||
|     @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class) | ||||
|     @PreAuthorize("@ss.hasPermission('os:form:query')") | ||||
|     public CommonResult<List<WfFormRespVO>> getFormList(@RequestParam("ids") Collection<Long> ids) { | ||||
|         List<WfForm> list = formService.getFormList(ids); | ||||
|         return success(WfFormConvert.INSTANCE.convertList(list)); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/page") | ||||
|     @ApiOperation("获得动态表单分页") | ||||
|     @PreAuthorize("@ss.hasPermission('os:form:query')") | ||||
|     public CommonResult<PageResult<WfFormRespVO>> getFormPage(@Valid WfFormPageReqVO pageVO) { | ||||
|         PageResult<WfForm> pageResult = formService.getFormPage(pageVO); | ||||
|         return success(WfFormConvert.INSTANCE.convertPage(pageResult)); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/export-excel") | ||||
|     @ApiOperation("导出动态表单 Excel") | ||||
|     @PreAuthorize("@ss.hasPermission('os:form:export')") | ||||
|     @OperateLog(type = EXPORT) | ||||
|     public void exportFormExcel(@Valid WfFormExportReqVO exportReqVO, | ||||
|               HttpServletResponse response) throws IOException { | ||||
|         List<WfForm> list = formService.getFormList(exportReqVO); | ||||
|         // 导出 Excel | ||||
|         List<WfFormExcelVO> datas = WfFormConvert.INSTANCE.convertList02(list); | ||||
|         ExcelUtils.write(response, "动态表单.xls", "数据", WfFormExcelVO.class, datas); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,28 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo; | ||||
|  | ||||
| import lombok.*; | ||||
| import io.swagger.annotations.*; | ||||
| import javax.validation.constraints.*; | ||||
|  | ||||
| /** | ||||
| * 动态表单 Base VO,提供给添加、修改、详细的子 VO 使用 | ||||
| * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||||
| */ | ||||
| @Data | ||||
| public class WfFormBaseVO { | ||||
|  | ||||
|     @ApiModelProperty(value = "表单名称", required = true) | ||||
|     @NotNull(message = "表单名称不能为空") | ||||
|     private String name; | ||||
|  | ||||
|     @ApiModelProperty(value = "商户状态", required = true) | ||||
|     @NotNull(message = "商户状态不能为空") | ||||
|     private Integer status; | ||||
|  | ||||
|     @ApiModelProperty(value = "表单JSON") | ||||
|     private String formJson; | ||||
|  | ||||
|     @ApiModelProperty(value = "备注") | ||||
|     private String remark; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,12 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo; | ||||
|  | ||||
| import lombok.*; | ||||
| import io.swagger.annotations.*; | ||||
|  | ||||
| @ApiModel("动态表单创建 Request VO") | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| public class WfFormCreateReqVO extends WfFormBaseVO { | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,34 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo; | ||||
|  | ||||
| import lombok.*; | ||||
| import java.util.*; | ||||
|  | ||||
| import com.alibaba.excel.annotation.ExcelProperty; | ||||
|  | ||||
| /** | ||||
|  * 动态表单 Excel VO | ||||
|  * | ||||
|  * @author 芋艿 | ||||
|  */ | ||||
| @Data | ||||
| public class WfFormExcelVO { | ||||
|  | ||||
|     @ExcelProperty("表单编号") | ||||
|     private Long id; | ||||
|  | ||||
|     @ExcelProperty("表单名称") | ||||
|     private String name; | ||||
|  | ||||
|     @ExcelProperty("商户状态") | ||||
|     private Integer status; | ||||
|  | ||||
|     @ExcelProperty("表单JSON") | ||||
|     private String formJson; | ||||
|  | ||||
|     @ExcelProperty("备注") | ||||
|     private String remark; | ||||
|  | ||||
|     @ExcelProperty("创建时间") | ||||
|     private Date createTime; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,33 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo; | ||||
|  | ||||
| import lombok.*; | ||||
| import java.util.*; | ||||
| import io.swagger.annotations.*; | ||||
| import org.springframework.format.annotation.DateTimeFormat; | ||||
| import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||||
|  | ||||
| @ApiModel(value = "动态表单 Excel 导出 Request VO", description = "参数和 OsFormPageReqVO 是一致的") | ||||
| @Data | ||||
| public class WfFormExportReqVO { | ||||
|  | ||||
|     @ApiModelProperty(value = "表单名称") | ||||
|     private String name; | ||||
|  | ||||
|     @ApiModelProperty(value = "商户状态") | ||||
|     private Integer status; | ||||
|  | ||||
|     @ApiModelProperty(value = "表单JSON") | ||||
|     private String formJson; | ||||
|  | ||||
|     @ApiModelProperty(value = "备注") | ||||
|     private String remark; | ||||
|  | ||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||
|     @ApiModelProperty(value = "开始创建时间") | ||||
|     private Date beginCreateTime; | ||||
|  | ||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||
|     @ApiModelProperty(value = "结束创建时间") | ||||
|     private Date endCreateTime; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,36 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo; | ||||
|  | ||||
| import lombok.*; | ||||
| import java.util.*; | ||||
| import io.swagger.annotations.*; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||
| import org.springframework.format.annotation.DateTimeFormat; | ||||
| import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||||
|  | ||||
| @ApiModel("动态表单分页 Request VO") | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| public class WfFormPageReqVO extends PageParam { | ||||
|  | ||||
|     @ApiModelProperty(value = "表单名称") | ||||
|     private String name; | ||||
|  | ||||
|     @ApiModelProperty(value = "商户状态") | ||||
|     private Integer status; | ||||
|  | ||||
|     @ApiModelProperty(value = "表单JSON") | ||||
|     private String formJson; | ||||
|  | ||||
|     @ApiModelProperty(value = "备注") | ||||
|     private String remark; | ||||
|  | ||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||
|     @ApiModelProperty(value = "开始创建时间") | ||||
|     private Date beginCreateTime; | ||||
|  | ||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||
|     @ApiModelProperty(value = "结束创建时间") | ||||
|     private Date endCreateTime; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo; | ||||
|  | ||||
| import lombok.*; | ||||
| import java.util.*; | ||||
| import io.swagger.annotations.*; | ||||
|  | ||||
| @ApiModel("动态表单 Response VO") | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| public class WfFormRespVO extends WfFormBaseVO { | ||||
|  | ||||
|     @ApiModelProperty(value = "表单编号", required = true) | ||||
|     private Long id; | ||||
|  | ||||
|     @ApiModelProperty(value = "创建时间", required = true) | ||||
|     private Date createTime; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,17 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo; | ||||
|  | ||||
| import lombok.*; | ||||
| import io.swagger.annotations.*; | ||||
| import javax.validation.constraints.*; | ||||
|  | ||||
| @ApiModel("动态表单更新 Request VO") | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| public class WfFormUpdateReqVO extends WfFormBaseVO { | ||||
|  | ||||
|     @ApiModelProperty(value = "表单编号", required = true) | ||||
|     @NotNull(message = "表单编号不能为空") | ||||
|     private Long id; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,36 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.convert.form; | ||||
|  | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormCreateReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormExcelVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormRespVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormUpdateReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import org.mapstruct.Mapper; | ||||
| import org.mapstruct.factory.Mappers; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * 动态表单 Convert | ||||
|  * | ||||
|  * @author 芋艿 | ||||
|  */ | ||||
| @Mapper | ||||
| public interface WfFormConvert { | ||||
|  | ||||
|     WfFormConvert INSTANCE = Mappers.getMapper(WfFormConvert.class); | ||||
|  | ||||
|     WfForm convert(WfFormCreateReqVO bean); | ||||
|  | ||||
|     WfForm convert(WfFormUpdateReqVO bean); | ||||
|  | ||||
|     WfFormRespVO convert(WfForm bean); | ||||
|  | ||||
|     List<WfFormRespVO> convertList(List<WfForm> list); | ||||
|  | ||||
|     PageResult<WfFormRespVO> convertPage(PageResult<WfForm> page); | ||||
|  | ||||
|     List<WfFormExcelVO> convertList02(List<WfForm> list); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,57 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import com.baomidou.mybatisplus.annotation.TableField; | ||||
| import com.baomidou.mybatisplus.annotation.TableId; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||||
| import lombok.*; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * 工作流的表单定义 | ||||
|  * 用于工作流的申请表单,需要动态配置的场景 | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @TableName(value = "wf_form", autoResultMap = true) | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| @Builder | ||||
| @NoArgsConstructor | ||||
| @AllArgsConstructor | ||||
| public class WfForm extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * 编号 | ||||
|      */ | ||||
|     @TableId | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 表单名 | ||||
|      */ | ||||
|     private String name; | ||||
|     /** | ||||
|      * 状态 | ||||
|      */ | ||||
|     private Integer status; | ||||
|     /** | ||||
|      * 表单JSON | ||||
|      */ | ||||
|     private String formJson; | ||||
|     /** | ||||
|      * 表单配置 | ||||
|      * | ||||
|      * 目前直接将 https://github.com/JakHuang/form-generator 生成的 JSON 串,直接保存 | ||||
|      * 定义:https://github.com/JakHuang/form-generator/issues/46 | ||||
|      */ | ||||
|     @TableField(typeHandler = JacksonTypeHandler.class) | ||||
|     private List<String> fields; | ||||
|     /** | ||||
|      * 备注 | ||||
|      */ | ||||
|     private String remark; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,55 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import com.baomidou.mybatisplus.annotation.TableField; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||||
| import lombok.*; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| /** | ||||
|  * 工作流的表单结果 | ||||
|  * 用户每次填写工作流的申请表单时,会保存一条记录到该表】 | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @TableName(value = "wf_form", autoResultMap = true) | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = true) | ||||
| @ToString(callSuper = true) | ||||
| @Builder | ||||
| @NoArgsConstructor | ||||
| @AllArgsConstructor | ||||
| public class WfFormData extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * 编号 | ||||
|      */ | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 表单编号 | ||||
|      * | ||||
|      * 关联 {@link WfForm#getId()} | ||||
|      */ | ||||
|     private Long formId; | ||||
|     /** | ||||
|      * 状态 | ||||
|      */ | ||||
|     private Integer status; | ||||
|     /** | ||||
|      * 表单配置 | ||||
|      * | ||||
|      * 冗余 {@link WfForm#getFields()} | ||||
|      * 主要考虑,表单是可以修改的 | ||||
|      */ | ||||
|     @TableField(typeHandler = JacksonTypeHandler.class) | ||||
|     private List<String> fields; | ||||
|     /** | ||||
|      * 表单值 | ||||
|      */ | ||||
|     @TableField(typeHandler = JacksonTypeHandler.class) | ||||
|     private Map<String, Object> values; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,43 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.dal.mysql.form; | ||||
|  | ||||
|  | ||||
|  | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormExportReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormPageReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; | ||||
| import org.apache.ibatis.annotations.Mapper; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * 动态表单 Mapper | ||||
|  * | ||||
|  * @author 风里雾里 | ||||
|  */ | ||||
| @Mapper | ||||
| public interface WfFormMapper extends BaseMapperX<WfForm> { | ||||
|  | ||||
|     default PageResult<WfForm> selectPage(WfFormPageReqVO reqVO) { | ||||
|         return selectPage(reqVO, new QueryWrapperX<WfForm>() | ||||
|                 .likeIfPresent("name", reqVO.getName()) | ||||
|                 .eqIfPresent("status", reqVO.getStatus()) | ||||
|                 .eqIfPresent("form_json", reqVO.getFormJson()) | ||||
|                 .eqIfPresent("remark", reqVO.getRemark()) | ||||
|                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||||
|                 .orderByDesc("id")        ); | ||||
|     } | ||||
|  | ||||
|     default List<WfForm> selectList(WfFormExportReqVO reqVO) { | ||||
|         return selectList(new QueryWrapperX<WfForm>() | ||||
|                 .likeIfPresent("name", reqVO.getName()) | ||||
|                 .eqIfPresent("status", reqVO.getStatus()) | ||||
|                 .eqIfPresent("form_json", reqVO.getFormJson()) | ||||
|                 .eqIfPresent("remark", reqVO.getRemark()) | ||||
|                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||||
|                 .orderByDesc("id")        ); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,14 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.enums.form; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.common.exception.ErrorCode; | ||||
|  | ||||
| /** | ||||
|  * activiti 系统 错误码枚举类 | ||||
|  * | ||||
|  * 003 activiti | ||||
|  * 001 oa | ||||
|  * activiti 系统,使用 1-003-000-000 段 | ||||
|  */ | ||||
| public interface WfFormErrorCodeConstants { | ||||
|     ErrorCode FORM_NOT_EXISTS = new ErrorCode(1003001002, "动态表单不存在"); | ||||
| } | ||||
| @@ -0,0 +1,75 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.service.form; | ||||
|  | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormCreateReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormExportReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormPageReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormUpdateReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
|  | ||||
| import java.util.*; | ||||
| import javax.validation.*; | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * 动态表单 Service 接口 | ||||
|  * | ||||
|  * TODO @风里雾里 | ||||
|  */ | ||||
| public interface WfFormService { | ||||
|  | ||||
|     /** | ||||
|      * 创建动态表单 | ||||
|      * | ||||
|      * @param createReqVO 创建信息 | ||||
|      * @return 编号 | ||||
|      */ | ||||
|     Long createForm(@Valid WfFormCreateReqVO createReqVO); | ||||
|  | ||||
|     /** | ||||
|      * 更新动态表单 | ||||
|      * | ||||
|      * @param updateReqVO 更新信息 | ||||
|      */ | ||||
|     void updateForm(@Valid WfFormUpdateReqVO updateReqVO); | ||||
|  | ||||
|     /** | ||||
|      * 删除动态表单 | ||||
|      * | ||||
|      * @param id 编号 | ||||
|      */ | ||||
|     void deleteForm(Long id); | ||||
|  | ||||
|     /** | ||||
|      * 获得动态表单 | ||||
|      * | ||||
|      * @param id 编号 | ||||
|      * @return 动态表单 | ||||
|      */ | ||||
|     WfForm getForm(Long id); | ||||
|  | ||||
|     /** | ||||
|      * 获得动态表单列表 | ||||
|      * | ||||
|      * @param ids 编号 | ||||
|      * @return 动态表单列表 | ||||
|      */ | ||||
|     List<WfForm> getFormList(Collection<Long> ids); | ||||
|  | ||||
|     /** | ||||
|      * 获得动态表单分页 | ||||
|      * | ||||
|      * @param pageReqVO 分页查询 | ||||
|      * @return 动态表单分页 | ||||
|      */ | ||||
|     PageResult<WfForm> getFormPage(WfFormPageReqVO pageReqVO); | ||||
|  | ||||
|     /** | ||||
|      * 获得动态表单列表, 用于 Excel 导出 | ||||
|      * | ||||
|      * @param exportReqVO 查询条件 | ||||
|      * @return 动态表单列表 | ||||
|      */ | ||||
|     List<WfForm> getFormList(WfFormExportReqVO exportReqVO); | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,86 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.activiti.service.form.impl; | ||||
|  | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormCreateReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormExportReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormPageReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.controller.form.vo.WfFormUpdateReqVO; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.convert.form.WfFormConvert; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.dal.dataobject.form.WfForm; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.dal.mysql.form.WfFormMapper; | ||||
| import cn.iocoder.yudao.adminserver.modules.activiti.service.form.WfFormService; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import java.util.Collection; | ||||
| import java.util.List; | ||||
|  | ||||
| import static cn.iocoder.yudao.adminserver.modules.activiti.enums.form.WfFormErrorCodeConstants.FORM_NOT_EXISTS; | ||||
| import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||||
|  | ||||
| /** | ||||
|  * 动态表单 Service 实现类 | ||||
|  * | ||||
|  * TODO @风里雾里 | ||||
|  */ | ||||
| @Service | ||||
| @Validated | ||||
| public class WfFormServiceImpl implements WfFormService { | ||||
|  | ||||
|     @Resource | ||||
|     private WfFormMapper formMapper; | ||||
|  | ||||
|     @Override | ||||
|     public Long createForm(WfFormCreateReqVO createReqVO) { | ||||
|         // 插入 | ||||
|         WfForm form = WfFormConvert.INSTANCE.convert(createReqVO); | ||||
|         formMapper.insert(form); | ||||
|         // 返回 | ||||
|         return form.getId(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void updateForm(WfFormUpdateReqVO updateReqVO) { | ||||
|         // 校验存在 | ||||
|         this.validateFormExists(updateReqVO.getId()); | ||||
|         // 更新 | ||||
|         WfForm updateObj = WfFormConvert.INSTANCE.convert(updateReqVO); | ||||
|         formMapper.updateById(updateObj); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void deleteForm(Long id) { | ||||
|         // 校验存在 | ||||
|         this.validateFormExists(id); | ||||
|         // 删除 | ||||
|         formMapper.deleteById(id); | ||||
|     } | ||||
|  | ||||
|     private void validateFormExists(Long id) { | ||||
|         if (formMapper.selectById(id) == null) { | ||||
|             throw exception(FORM_NOT_EXISTS); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public WfForm getForm(Long id) { | ||||
|         return formMapper.selectById(id); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<WfForm> getFormList(Collection<Long> ids) { | ||||
|         return formMapper.selectBatchIds(ids); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public PageResult<WfForm> getFormPage(WfFormPageReqVO pageReqVO) { | ||||
|         return formMapper.selectPage(pageReqVO); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<WfForm> getFormList(WfFormExportReqVO exportReqVO) { | ||||
|         return formMapper.selectList(exportReqVO); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -60,7 +60,7 @@ public class SysDictTypeController { | ||||
|  | ||||
|     @ApiOperation("/获得字典类型的分页列表") | ||||
|     @GetMapping("/page") | ||||
|     @PreAuthorize("@ss.hasPermission('system:dict:quey')") | ||||
|     @PreAuthorize("@ss.hasPermission('system:dict:query')") | ||||
|     public CommonResult<PageResult<SysDictTypeRespVO>> pageDictTypes(@Valid SysDictTypePageReqVO reqVO) { | ||||
|         return success(SysDictTypeConvert.INSTANCE.convertPage(dictTypeService.getDictTypePage(reqVO))); | ||||
|     } | ||||
| @@ -68,7 +68,7 @@ public class SysDictTypeController { | ||||
|     @ApiOperation("/查询字典类型详细") | ||||
|     @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | ||||
|     @GetMapping(value = "/get") | ||||
|     @PreAuthorize("@ss.hasPermission('system:dict:quey')") | ||||
|     @PreAuthorize("@ss.hasPermission('system:dict:query')") | ||||
|     public CommonResult<SysDictTypeRespVO> getDictType(@RequestParam("id") Long id) { | ||||
|         return success(SysDictTypeConvert.INSTANCE.convert(dictTypeService.getDictType(id))); | ||||
|     } | ||||
| @@ -83,7 +83,7 @@ public class SysDictTypeController { | ||||
|  | ||||
|     @ApiOperation("导出数据类型") | ||||
|     @GetMapping("/export") | ||||
|     @PreAuthorize("@ss.hasPermission('system:dict:quey')") | ||||
|     @PreAuthorize("@ss.hasPermission('system:dict:query')") | ||||
|     @OperateLog(type = EXPORT) | ||||
|     public void export(HttpServletResponse response, @Valid SysDictTypeExportReqVO reqVO) throws IOException { | ||||
|         List<SysDictTypeDO> list = dictTypeService.getDictTypeList(reqVO); | ||||
|   | ||||
| @@ -56,7 +56,7 @@ public class SysNoticeController { | ||||
|  | ||||
|     @GetMapping("/page") | ||||
|     @ApiOperation("获取通知公告列表") | ||||
|     @PreAuthorize("@ss.hasPermission('system:notice:quey')") | ||||
|     @PreAuthorize("@ss.hasPermission('system:notice:query')") | ||||
|     public CommonResult<PageResult<SysNoticeRespVO>> pageNotices(@Validated SysNoticePageReqVO reqVO) { | ||||
|         return success(SysNoticeConvert.INSTANCE.convertPage(noticeService.pageNotices(reqVO))); | ||||
|     } | ||||
| @@ -64,7 +64,7 @@ public class SysNoticeController { | ||||
|     @GetMapping("/get") | ||||
|     @ApiOperation("获得通知公告") | ||||
|     @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) | ||||
|     @PreAuthorize("@ss.hasPermission('system:notice:quey')") | ||||
|     @PreAuthorize("@ss.hasPermission('system:notice:query')") | ||||
|     public CommonResult<SysNoticeRespVO> getNotice(@RequestParam("id") Long id) { | ||||
|         return success(SysNoticeConvert.INSTANCE.convert(noticeService.getNotice(id))); | ||||
|     } | ||||
|   | ||||
| @@ -47,13 +47,13 @@ spring: | ||||
|           url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT | ||||
|           driver-class-name: com.mysql.jdbc.Driver | ||||
|           username: root | ||||
|           password: root | ||||
|           password: 123456 | ||||
|         slave: # 模拟从库,可根据自己需要修改 | ||||
|           name: ruoyi-vue-pro | ||||
|           url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT | ||||
|           driver-class-name: com.mysql.jdbc.Driver | ||||
|           username: root | ||||
|           password: root | ||||
|           password: 123456 | ||||
|  | ||||
|  | ||||
|   activiti: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV