
26 changed files with 598 additions and 57 deletions
@ -1,13 +1,60 @@ |
|||
###工作流 |
|||
1、部署流程定义(BPMN文件),获取流程定义文件对象 |
|||
移动端配置工作流的页面地址: |
|||
1、将网关等参数map每个申请提取出公共方法,流程相关接口传map时调用该方法。 |
|||
appMap中定义的接口地址以及页面地址,需在OaFormUrlEnum中提取和维护。 |
|||
|
|||
2、发起申请,启动流程实例,并获取流程实例对象 |
|||
2、移动端的还需在流程配置表中配置地址,及按钮3,4,5等。web端的地址需在appMap |
|||
中定义。 |
|||
|
|||
3、对工作流流程的具体操作 |
|||
3、Get请求 默认传递query参数 orgPath userSid name(关键字),后台按需使用,对于需要额外传参的请在地址上做处理,即path |
|||
处理。 |
|||
~~~ |
|||
//查询组织 |
|||
terminal/oa/v1/common/org |
|||
~~~ |
|||
~~~ |
|||
//查询分公司 |
|||
// 使用path进行处理额外传参 |
|||
terminal/oa/v1/common/division/companies/{事业部sid} |
|||
例:terminal/oa/v1/common/division/companies/sid |
|||
~~~ |
|||
|
|||
app联系人页面: |
|||
~~~ |
|||
// 查询部门 |
|||
// 使用path进行额外传2参 |
|||
// params里包含组织和事业部的sid,以逗号分割 |
|||
terminal/oa/v1/common/dept/{params} |
|||
例:terminal/oa/v1/common/dept/sid1,sid2 |
|||
~~~ |
|||
|
|||
加字段:首字母以及姓名的英文 |
|||
|
|||
4、使用数据字典等id/dictValue/extra时,请使用oaForm中的FormCommon实体类。 |
|||
|
|||
账号: 15097329653 密码: 329653 |
|||
5、格式 |
|||
~~~ |
|||
================================================== |
|||
|
|||
1. 新增初始化 |
|||
|
|||
举例 oa./daka |
|||
|
|||
key '' value '' obj=null |
|||
|
|||
2.修改初始化 |
|||
举例 oa./daka/sid |
|||
|
|||
新增修改 必须一样的地址 |
|||
|
|||
obj必须组装返回给前端 |
|||
|
|||
3 详情 |
|||
key都不要了 只要value |
|||
|
|||
xxxpage留着 xxxPage替换path和版本号时调取oaFormService中的getPage方法。 |
|||
|
|||
|
|||
新增 get query orgPath userSid |
|||
修改 get Path query orgPath userSid |
|||
保存 post json |
|||
详情 get query orgPath userSid application |
|||
|
|||
~~~ |
@ -1,12 +0,0 @@ |
|||
package com.yxt.anrui.oa.biz.oaform; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/1/16 |
|||
**/ |
|||
@Data |
|||
public class Extra { |
|||
} |
@ -0,0 +1,75 @@ |
|||
package com.yxt.anrui.oa.biz.oaform; |
|||
|
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.lang.reflect.Field; |
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/1/22 |
|||
**/ |
|||
@Data |
|||
public class ModuleVo { |
|||
|
|||
private String type; |
|||
|
|||
private String applicationId; |
|||
|
|||
private String moduleAction; |
|||
|
|||
private String modulePluginName; |
|||
|
|||
private String params; |
|||
|
|||
private int moduleVersion; |
|||
private String applicationSid; |
|||
private String path; |
|||
|
|||
// 静态方法,直接通过方法创建对象并赋值
|
|||
public static ModuleVo of(String type, String applicationId, String moduleAction, String modulePluginName, String applicationSid, Map<String, Object> map) { |
|||
ModuleVo moduleVo = new ModuleVo(); |
|||
moduleVo.setType(type); |
|||
moduleVo.setApplicationId(applicationId); |
|||
moduleVo.setModuleAction(moduleAction); |
|||
moduleVo.setModulePluginName(modulePluginName); |
|||
moduleVo.setModuleVersion(-1); |
|||
moduleVo.setApplicationSid(applicationSid); |
|||
moduleVo.setPath(""); |
|||
String params = moduleVo.mapToJson(map); |
|||
moduleVo.setParams(params); |
|||
return moduleVo; |
|||
} |
|||
|
|||
// 将 Map 转换为 JSON 字符串
|
|||
public String mapToJson(Map<String, Object> map) { |
|||
ObjectMapper objectMapper = new ObjectMapper(); |
|||
try { |
|||
// 使用 ObjectMapper 将 Map 转换为 JSON 字符串
|
|||
return objectMapper.writeValueAsString(map); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
|
|||
public static Map<String, Object> entityToMap(Object entity) { |
|||
Map<String, Object> map = new HashMap<>(); |
|||
Field[] fields = entity.getClass().getDeclaredFields(); |
|||
|
|||
for (Field field : fields) { |
|||
field.setAccessible(true); // 使私有字段可访问
|
|||
try { |
|||
map.put(field.getName(), field.get(entity)); |
|||
} catch (IllegalAccessException e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
return map; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,42 @@ |
|||
package com.yxt.anrui.oa.biz.oaform; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/1/22 |
|||
**/ |
|||
public enum OaFormTypeEnum { |
|||
/** |
|||
* 招聘需求 |
|||
*/ |
|||
HRHIREAPPLY(1, "招聘需求"), |
|||
; |
|||
|
|||
//类型
|
|||
private final int type; |
|||
//申请名称
|
|||
private final String name; |
|||
|
|||
public int getType() { |
|||
return type; |
|||
} |
|||
|
|||
public String getName() { |
|||
return name; |
|||
} |
|||
|
|||
OaFormTypeEnum(int type, String name) { |
|||
this.type = type; |
|||
this.name = name; |
|||
} |
|||
|
|||
// 根据 type 获取对应的枚举常量
|
|||
public static OaFormTypeEnum fromType(int type) { |
|||
for (OaFormTypeEnum formType : values()) { |
|||
if (formType.getType() == type) { |
|||
return formType; |
|||
} |
|||
} |
|||
throw new IllegalArgumentException("No matching enum for type " + type); |
|||
} |
|||
} |
@ -0,0 +1,21 @@ |
|||
package com.yxt.anrui.oa.biz.oalinkform; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/1/23 |
|||
**/ |
|||
@Data |
|||
public class OaLinkform { |
|||
@ApiModelProperty("表单sid") |
|||
private String formSid; |
|||
@ApiModelProperty("关联审批单sid") |
|||
private String linkFormSid; |
|||
@ApiModelProperty("关联审批单标题") |
|||
private String linkFormTitle; |
|||
@ApiModelProperty("排序") |
|||
private Integer sortNo; |
|||
} |
@ -0,0 +1,14 @@ |
|||
package com.yxt.anrui.oa.biz.oalinkform; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.anrui.oa.biz.oamendapply.OaMendApply; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/1/23 |
|||
**/ |
|||
@Mapper |
|||
public interface OaLinkformMapper extends BaseMapper<OaLinkform> { |
|||
} |
@ -0,0 +1,4 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.yxt.anrui.oa.biz.oalinkform.OaLinkformMapper"> |
|||
</mapper> |
@ -0,0 +1,13 @@ |
|||
package com.yxt.anrui.oa.biz.oalinkform; |
|||
|
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/1/23 |
|||
**/ |
|||
@Service |
|||
public class OaLinkformService extends MybatisBaseService<OaLinkformMapper, OaLinkform> { |
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.oa.feign.portal.appsubsetversion; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.RequestParam; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/1/22 |
|||
**/ |
|||
@FeignClient( |
|||
contextId = "anrui-portal-AppSubsetVersion", |
|||
name = "anrui-portal", |
|||
path = "v1/appsubsetversion") |
|||
public interface AppSubsetVersionFeign { |
|||
|
|||
@ApiOperation("查询插件最新模块信息") |
|||
@GetMapping("/getLastModule") |
|||
public ResultBean<AppSubsetVersionVo> getLastModule(@RequestParam("appSid") String appSid); |
|||
} |
@ -0,0 +1,74 @@ |
|||
package com.yxt.anrui.oa.feign.portal.appsubsetversion; |
|||
|
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* Project: anrui-portal(门户建设) <br/> |
|||
* File: AppSubsetVersionVo.java <br/> |
|||
* Class: com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionVo <br/> |
|||
* Description: 一级应用 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2021-09-13 14:16:33 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@ApiModel(value = "一级应用 视图数据对象", description = "一级应用 视图数据对象") |
|||
@Data |
|||
public class AppSubsetVersionVo implements Vo { |
|||
|
|||
|
|||
@ApiModelProperty("appSid") |
|||
private String appSid; |
|||
|
|||
@ApiModelProperty("关联sid") |
|||
private String linkSid; |
|||
|
|||
@ApiModelProperty("应用名称") |
|||
private String appName; |
|||
|
|||
@ApiModelProperty("应用名称") |
|||
private String cornerNum; |
|||
|
|||
@ApiModelProperty("版本编码") |
|||
private Integer versionCode; |
|||
|
|||
@ApiModelProperty("版本号") |
|||
private String versionName; |
|||
|
|||
@ApiModelProperty("apk下载地址") |
|||
private String updateUrl; |
|||
|
|||
@ApiModelProperty("版本的更新描述") |
|||
private String upgradeInfo; |
|||
|
|||
@ApiModelProperty("图标地址") |
|||
private String iconUrl; |
|||
|
|||
@ApiModelProperty("资源sid") |
|||
private String sourceSid; |
|||
|
|||
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") |
|||
private String type; |
|||
|
|||
@ApiModelProperty("插件名称") |
|||
private String modulePluginName; |
|||
|
|||
@ApiModelProperty("包名") |
|||
private String sourcePackage; |
|||
|
|||
@ApiModelProperty("启动模块的动作(0.启动Activity的包名+类名 1.html地址 2.启动Activity的包名+类名)") |
|||
private String sourceAction; |
|||
|
|||
@ApiModelProperty("排序") |
|||
private Integer sortNo; |
|||
|
|||
@ApiModelProperty("地址") |
|||
private String moduleAction; |
|||
} |
Loading…
Reference in new issue