Browse Source

调式获取getPage

master
dimengzhe 3 months ago
parent
commit
e32f8ccfe0
  1. 13
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/appsubsetversion/AppSubsetVersionRest.java
  2. 86
      doc/databases/oa/oa.sql
  3. 5
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java
  4. 7
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java
  5. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApply.java
  6. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyDetailVo.java
  7. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyDto.java
  8. 103
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java
  9. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyVo.java
  10. 12
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/Extra.java
  11. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/FormCommon.java
  12. 75
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/ModuleVo.java
  13. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaForm.java
  14. 2
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java
  15. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormMapper.java
  16. 8
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormMapper.xml
  17. 124
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java
  18. 42
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormTypeEnum.java
  19. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormUrlEnum.java
  20. 21
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oalinkform/OaLinkform.java
  21. 14
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oalinkform/OaLinkformMapper.java
  22. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oalinkform/OaLinkformMapper.xml
  23. 13
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oalinkform/OaLinkformService.java
  24. 23
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/appsubsetversion/AppSubsetVersionFeign.java
  25. 74
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/appsubsetversion/AppSubsetVersionVo.java

13
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/appsubsetversion/AppSubsetVersionRest.java

@ -8,8 +8,11 @@ import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@ -255,7 +258,7 @@ public class AppSubsetVersionRest implements AppSubsetVersionFeign {
}
@Override
public ResultBean<AppSubVersionVo> getLastRiskByAppSid(String appSid,String moduleAction) {
public ResultBean<AppSubVersionVo> getLastRiskByAppSid(String appSid, String moduleAction) {
ResultBean<AppSubVersionVo> rb = ResultBean.fireFail();
AppSubVersionVo vo = new AppSubVersionVo();
ResultBean<AppSubsetVersionVo> resultBean = getLastByAppSid(appSid);
@ -266,4 +269,12 @@ public class AppSubsetVersionRest implements AppSubsetVersionFeign {
vo.setModuleAction(moduleAction);
return rb.success().setData(vo);
}
@ApiOperation("查询插件最新模块信息")
@GetMapping("/getLastModule")
public ResultBean<AppSubsetVersionVo> getLastModule(@RequestParam("appSid") String appSid) {
ResultBean<AppSubsetVersionVo> rb = ResultBean.fireFail();
AppSubsetVersionVo appSubsetVersionVo = appSubsetVersionService.selectByAppSidOne(appSid);
return rb.success().setData(appSubsetVersionVo);
}
}

86
doc/databases/oa/oa.sql

@ -12,6 +12,9 @@ CREATE TABLE `oa_form`
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`createByName` varchar(64) DEFAULT NULL COMMENT '创建人',
`formType` varchar(64) DEFAULT NULL COMMENT '表单类别-流程名称',
`title` varchar(64) DEFAULT NULL COMMENT '标题',
`billNo` varchar(64) DEFAULT NULL COMMENT '申请单号',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '公司sid',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '公司名称',
`deptSid` varchar(255) DEFAULT NULL COMMENT '部门sid',
@ -28,3 +31,86 @@ CREATE TABLE `oa_form`
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='表单公共表';
DROP TABLE IF EXISTS `hr_hire_apply`;
CREATE TABLE `hr_hire_apply`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`isFinanceKey` varchar(64) DEFAULT NULL COMMENT '招聘岗位是否为财务岗key:0否1是',
`isFinanceValue` varchar(64) DEFAULT NULL COMMENT '招聘岗位是否为财务岗Value:0否1是',
`formSid` varchar(64) DEFAULT NULL COMMENT '公共表单sid',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='招聘需求申请';
DROP TABLE IF EXISTS `hr_hire_details`;
CREATE TABLE `hr_hire_details`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`mainSid` varchar(64) DEFAULT NULL COMMENT '招聘表sid',
`deptSid` varchar(64) DEFAULT NULL COMMENT '招聘部门sid',
`deptName` varchar(64) DEFAULT NULL COMMENT '招聘部门名称',
`postSid` varchar(64) DEFAULT NULL COMMENT '招聘岗位sid',
`postName` varchar(64) DEFAULT NULL COMMENT '招聘岗位名称',
`memberCount` int(32) DEFAULT NULL COMMENT '招聘人数',
`educationKey` varchar(64) DEFAULT NULL COMMENT '学历要求key',
`educationValue` varchar(64) DEFAULT NULL COMMENT '学历要求value',
`formalWages` varchar(64) DEFAULT NULL COMMENT '薪资待遇',
`benefits` text DEFAULT NULL COMMENT '职位福利',
`describes` text DEFAULT NULL COMMENT '职位描述',
`demand` text DEFAULT NULL COMMENT '任职要求',
`address` text DEFAULT NULL COMMENT '工作地址',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='招聘需求明细';
DROP TABLE IF EXISTS `oa_linkform`;
CREATE TABLE `oa_linkform`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`formSid` varchar(64) DEFAULT NULL COMMENT '表单sid',
`linkFormSid` varchar(64) DEFAULT NULL COMMENT '关联审批单sid',
`linkFormTitle` varchar(64) DEFAULT NULL COMMENT '关联表单标题',
`sortNo` int(32) DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='关联审批表';

5
yxt-oa/src/main/java/com/yxt/anrui/oa/api/HrHireApplyRest.java

@ -68,8 +68,9 @@ public class HrHireApplyRest {
@ApiOperation("详情")
@GetMapping("/details/{sid}")
ResultBean<HrHireApplyDetailVo> details(@PathVariable("sid") String sid) {
return hrHireApplyService.details(sid);
ResultBean<HrHireApplyDetailVo> details(@PathVariable("sid") String sid
, @RequestParam(value = "application", required = false) String application) {
return hrHireApplyService.details(sid,application);
}
@ApiOperation("提交审批流程")

7
yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java

@ -106,4 +106,11 @@ public class OaFormRest {
return oaFormService.assignTask(dto);
}
/*@ApiOperation(value = "查询审批单")
@GetMapping(value = "/getDict")
@ResponseBody
ResultBean<List<FormCommon>> getDict(@RequestParam(value = "orgPath", required = false) String orgPath) {
return oaFormService.getDict(orgPath);
}*/
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApply.java

@ -17,4 +17,6 @@ public class HrHireApply extends BaseEntity {
private String isFinanceValue;
private String formSid;
// private String testPage;
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyDetailVo.java

@ -18,4 +18,6 @@ public class HrHireApplyDetailVo extends OaFormCommonVo {
private String isFinanceValue;
private List<HrHireListDetailVo> list = new ArrayList<>();
// private String testPage;
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyDto.java

@ -21,4 +21,6 @@ public class HrHireApplyDto extends OaFormDto {
private String isFinanceKey;
private String isFinanceValue;
private List<HrHireDetailsDto> list = new ArrayList<>();
// private String testPage;
}

103
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyService.java

@ -1,6 +1,8 @@
package com.yxt.anrui.oa.biz.hrhireapply;
import cn.hutool.core.bean.BeanUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yxt.anrui.oa.biz.hrhiredetails.HrHireDetailsDto;
import com.yxt.anrui.oa.biz.hrhiredetails.HrHireDetailsService;
import com.yxt.anrui.oa.biz.hrhiredetails.HrHireDetailsVo;
@ -54,6 +56,7 @@ public class HrHireApplyService extends MybatisBaseService<HrHireApplyMapper, Hr
if (hrHireApply == null) {
return rb.setMsg("该申请不存在");
}
// hrHireApplyVo.setTestPage(hrHireApply.getTestPage());
OaForm oaForm = oaFormService.fetchBySid(sid);
hrHireApplyVo.setTaskId(oaForm.getTaskId());
hrHireApplyVo.setProcInsId(oaForm.getProcInstId());
@ -95,6 +98,7 @@ public class HrHireApplyService extends MybatisBaseService<HrHireApplyMapper, Hr
dto.setBillNo("ZPXQ");
dto.setSid(entity.getSid());
dto.setCreateBySid(dto.getCreateBySid());
// dto.setType(OaFormTypeEnum.HRHIREAPPLY.getType());
ResultBean<String> resultBean = oaFormService.saveOaForm(dto);
if (!resultBean.getSuccess()) {
return rb;
@ -169,7 +173,7 @@ public class HrHireApplyService extends MybatisBaseService<HrHireApplyMapper, Hr
return oaFormService.complete(businessVariablesDto);
}
public ResultBean<String> getFlowOperateTitle(NodeQuery query) {
/* public ResultBean<String> getFlowOperateTitle(NodeQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
@ -197,6 +201,62 @@ public class HrHireApplyService extends MybatisBaseService<HrHireApplyMapper, Hr
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}*/
public ResultBean<String> getFlowOperateTitle(NodeQuery query) {
// 默认失败返回
ResultBean<String> rb = ResultBean.fireFail();
// 获取next值和formVariables
int next = query.getNext();
// 获取并更新formVariables
Map<String, Object> formVariables = getMap(query.getFormVariables(), query.getBusinessSid());
query.setFormVariables(formVariables);
// 校验next参数是否有效(只允许0或1)
if (next != 0 && next != 1) {
return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息
}
// 获取节点名称
String data = getNodeName(query, next);
// 如果data为null,表示未获取到有效的节点信息
if (data == null) {
return rb.setMsg("没有获取到节点信息"); // 返回错误消息
}
// 返回成功的结果和获取到的节点名称
return rb.success().setData(data);
}
/**
* 根据next的值获取前一个节点或下一个节点的名称
*
* @param query 包含查询所需参数的NodeQuery对象
* @param next 参数0表示上一环节1表示下一环节
* @return 节点名称如果失败则返回null
*/
private String getNodeName(NodeQuery query, int next) {
// 根据next值选择相应的服务方法获取节点信息
ResultBean<List<NodeVo>> resultBean = (next == 0)
? oaFormService.getPreviousNodesForReject(query) // 获取上一环节的节点
: oaFormService.getNextNodesForSubmit(query); // 获取下一环节的节点
// 如果服务调用成功
if (resultBean.getSuccess()) {
// 清除结果列表中的null值,避免空节点
resultBean.getData().removeAll(Collections.singleton(null));
// 如果结果列表非空,返回第一个节点的名称
if (!resultBean.getData().isEmpty()) {
return resultBean.getData().get(0).getName();
}
} else {
// 如果服务调用失败,返回null
return null;
}
// 如果结果为空,返回null
return null;
}
@ -212,8 +272,8 @@ public class HrHireApplyService extends MybatisBaseService<HrHireApplyMapper, Hr
appMap.put("recallUrl", "oa/v1/oaform/revokeProcess");
appMap.put("signUrl", "oa/v1/oaform/delegate");
appMap.put("transferUrl", "oa/v1/oaform/assignTask");*/
appMap.put(OaFormUrlEnum.HRHIREAPPLY_EDIT.getType(), OaFormUrlEnum.HRHIREAPPLY_EDIT.getUrl() + sid);
appMap.put(OaFormUrlEnum.HRHIREAPPLY_DETAIL.getType(), OaFormUrlEnum.HRHIREAPPLY_DETAIL.getUrl() + sid);
appMap.put(OaFormUrlEnum.HRHIREAPPLY_EDIT.getType(), OaFormUrlEnum.HRHIREAPPLY_EDIT.getUrl() + "?sid=" + sid);
appMap.put(OaFormUrlEnum.HRHIREAPPLY_DETAIL.getType(), OaFormUrlEnum.HRHIREAPPLY_DETAIL.getUrl() + "?sid=" + sid);
appMap.put(OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getUrl());
appMap.put(OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getUrl());
appMap.put(OaFormUrlEnum.STOPURL.getType(), OaFormUrlEnum.STOPURL.getUrl());
@ -239,7 +299,7 @@ public class HrHireApplyService extends MybatisBaseService<HrHireApplyMapper, Hr
* @param sid
* @return
*/
public ResultBean<HrHireApplyDetailVo> details(String sid) {
public ResultBean<HrHireApplyDetailVo> details(String sid, String application) {
ResultBean<HrHireApplyDetailVo> rb = ResultBean.fireFail();
HrHireApplyDetailVo hrHireApplyDetailVo = baseMapper.details(sid);
if (hrHireApplyDetailVo == null) {
@ -255,6 +315,41 @@ public class HrHireApplyService extends MybatisBaseService<HrHireApplyMapper, Hr
}
//基础字段赋值
BeanUtil.copyProperties(oaFormService.getDetails(sid), hrHireApplyDetailVo);
/*Map<String, Object> map = new HashMap<>();
HrHireApply hrHireApply = fetchBySid(sid);
String testPage = hrHireApply.getTestPage();
if (StringUtils.isNotBlank(testPage)) {
//将testPage转为Map<String,Map<String,Object>
try {
// 创建 ObjectMapper 实例
ObjectMapper objectMapper = new ObjectMapper();
// 将 JSON 字符串解析为 Map<String, Object>
Map<String, Object> stringToMap = objectMapper.readValue(testPage, Map.class);
// 解析 "params" 字段,转换成 Map
String paramsJson = (String) map.get("params"); // 获取 params 字符串
if (paramsJson != null) {
// 将 params 字符串解析为 Map
Map<String, Object> paramsMap = objectMapper.readValue(paramsJson, Map.class);
stringToMap.put("params", paramsMap); // 将解析后的 Map 放回 "params" 字段
}
map.put("testPage", stringToMap);
System.out.println(map);
} catch (Exception e) {
e.printStackTrace();
}
Map<String, Object> pageMap = oaFormService.getPage(application, map);
Map<String,Object> mapPage = (Map<String, Object>) pageMap.get("testPage");
ObjectMapper objectMapper = new ObjectMapper();
try {
String jsonString = objectMapper.writeValueAsString(mapPage);
hrHireApplyDetailVo.setTestPage(jsonString);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
*/
return rb.success().setData(hrHireApplyDetailVo);
}
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/hrhireapply/HrHireApplyVo.java

@ -31,4 +31,6 @@ public class HrHireApplyVo {
private String taskId;
@ApiModelProperty("流程实例id")
private String procInsId;
// private String testPage;
}

12
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/Extra.java

@ -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 {
}

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/FormCommon.java

@ -2,6 +2,8 @@ package com.yxt.anrui.oa.biz.oaform;
import lombok.Data;
import java.util.Map;
/**
* @description:
* @author: dimengzhe
@ -13,7 +15,7 @@ public class FormCommon {
private String id;
private String dictValue;
private Extra extra;
private Map<String, Object> extra;
// 静态方法,直接通过方法创建对象并赋值
public static FormCommon of(String id, String dictValue) {

75
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/ModuleVo.java

@ -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;
}
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaForm.java

@ -50,4 +50,6 @@ public class OaForm extends BaseEntity {
@ApiModelProperty("创建组织")
private String createOrgName;
// private Integer type;
}

2
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java

@ -30,4 +30,6 @@ public class OaFormDto implements Dto {
//流程提交时赋值
@ApiModelProperty("任务id")
private String taskId;
// private Integer type;
}

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormMapper.java

@ -1,5 +1,6 @@
package com.yxt.anrui.oa.biz.oaform;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -7,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
@ -23,4 +25,6 @@ public interface OaFormMapper extends BaseMapper<OaForm> {
int updateFlowFiled(Map<String, Object> map);
int selectNum(String bill);
List<OaForm> getDict(@Param(Constants.WRAPPER) Wrapper<OaForm> qw);
}

8
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormMapper.xml

@ -37,4 +37,12 @@
from oa_form
where billNo LIKE concat(#{bill}, '%')
</select>
<select id="getDict" resultType="com.yxt.anrui.oa.biz.oaform.OaForm">
select *
from oa_form
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

124
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.oa.biz.oaform.flowable.*;
import com.yxt.anrui.oa.feign.base.BillNo;
@ -19,6 +20,8 @@ import com.yxt.anrui.oa.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.anrui.oa.feign.message.MessageFeign;
import com.yxt.anrui.oa.feign.message.MessageFlowVo;
import com.yxt.anrui.oa.feign.message.MessageFlowableQuery;
import com.yxt.anrui.oa.feign.portal.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.oa.feign.portal.appsubsetversion.AppSubsetVersionVo;
import com.yxt.anrui.oa.feign.portal.sysorganization.OrgVo;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo;
@ -27,12 +30,14 @@ import com.yxt.anrui.oa.feign.sysuser.SysUserFeign;
import com.yxt.anrui.oa.feign.sysuser.SysUserVo;
import com.yxt.anrui.oa.feign.sysuser.UserQuery;
import com.yxt.anrui.oa.feign.sysuser.UserRoleQuery;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -63,6 +68,10 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
/**
* 保存oaform表单
@ -76,7 +85,7 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
// 创建OA表单对象
OaForm oaForm = new OaForm();
// 将DTO中部分属性复制到oaForm中,忽略不需要的字段(如billNo, orgSidPath)
BeanUtil.copyProperties(dto, oaForm, "billNo", "orgPath");
BeanUtil.copyProperties(dto, oaForm, "billNo", "orgSidPath");
try {
String orgSidPath = dto.getOrgSidPath();
// 获取组织信息,根据orgSidPath字段调用外部服务
@ -664,10 +673,121 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return rb.success().setData(bv);
}
/**
* 获取申请单详情的基础字段
*
* @param sid
* @return
*/
public OaFormCommonVo getDetails(String sid) {
OaForm oaForm = fetchBySid(sid);
OaFormCommonVo vo = OaFormCommonVo.of(oaForm.getBillNo(), new SimpleDateFormat("yyyy-MM-dd").format(oaForm.getCreateTime()), oaForm.getCreateByName(), oaForm.getUseOrgName(), oaForm.getDeptName());
return vo;
}
/*public ResultBean<List<FormCommon>> getDict(String orgPath) {
ResultBean<List<FormCommon>> rb = ResultBean.fireFail();
List<FormCommon> list = new ArrayList<>();
QueryWrapper<OaForm> qw = new QueryWrapper<>();
String useOrgSid = "";
if (StringUtils.isNotBlank(orgPath)) {
// 获取组织信息,根据orgSidPath字段调用外部服务
OrgVo orgVo = sysOrganizationFeign.getOrgByPath(orgPath).getData();
// 如果组织信息为空,返回失败信息
if (orgVo == null) {
return rb.setMsg("未找到对应的组织信息");
}
useOrgSid = orgVo.getUseOrgSid();
qw.eq("useOrgSid", useOrgSid);
}
List<OaForm> oaFormList = baseMapper.getDict(qw);
oaFormList.removeAll(Collections.singleton(null));
if (!oaFormList.isEmpty()) {
oaFormList.stream().forEach(v -> {
FormCommon formCommon = FormCommon.of(v.getSid(), v.getTitle() + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(v.getCreateTime()));
Map<String, Object> map = new HashMap<>();
// 动态获取对应的枚举常量
OaFormTypeEnum formType = OaFormTypeEnum.fromType(v.getType());
switch (formType.getType()) {
//招聘需求
case 1:
map.put("sid", v.getSid());
map.put(OaFormUrlEnum.HRHIREAPPLY_DETAIL.getType(), OaFormUrlEnum.HRHIREAPPLY_DETAIL.getUrl());
ModuleVo moduleVo = ModuleVo.of("2",
"com.anrui.android.plugin.oa",
"com.anrui.android.plugin.oa.common.BaseOADetailActivity",
"oa",
"58301351-e4d9-11ee-b0bf-0242ac120004",
map);
Map<String, Object> moduleMap = ModuleVo.entityToMap(moduleVo);
formCommon.setExtra(moduleMap);
break;
case 2:
break;
default:
break;
}
list.add(formCommon);
});
}
return rb.success().setData(list);
}*/
/**
* 根据插件sid和page的Map对pageMap中的path和moduleVersion进行替换
*
* @param appSid
* @param map
* @return
*/
public Map<String, Object> getPage(String appSid, Map<String, Object> map) {
Set<String> applicationSidSet = new HashSet<>(); // 用于存储 applicationSid
// 遍历 Map 中的每个键(testPage 和 bPage)
for (String key : map.keySet()) {
// 获取对应的 Map 对象(testPage 或 bPage)
Map<String, Object> innerMap = (Map<String, Object>) map.get(key);
// 获取 applicationSid
String applicationSid = (String) innerMap.get("applicationSid");
String type = (String) innerMap.get("type");
if (applicationSid != null && !applicationSid.equals(appSid) && "2".equals(type)) {
// 将 applicationSid 添加到 HashSet
applicationSidSet.add(applicationSid);
}
}
Map<String, Map<String, String>> map2 = new HashMap<>();
// 循环遍历 Set 中的每个 applicationSid
for (String applicationSid : applicationSidSet) {
Map<String, String> stringMap = new HashMap<>();
//根据appSid查询最新的版本号和地址
ResultBean<AppSubsetVersionVo> getLastModule = appSubsetVersionFeign.getLastModule(applicationSid);
stringMap.put("path", getLastModule.getData().getUpdateUrl());
stringMap.put("moduleVersion", getLastModule.getData().getVersionCode().toString());
map2.put(applicationSid, stringMap);
System.out.println("Application SID: " + applicationSid);
}
//遍历map
for (String key : map.keySet()) {
// 获取对应的 Map 对象(testPage 或 bPage)
Map<String, Object> innerMap = (Map<String, Object>) map.get(key);
String type = (String) innerMap.get("type");
String applicationSid = (String) innerMap.get("applicationSid");
if ("2".equals(type)) {
Map<String, String> stringMap = map2.get(applicationSid);
if (stringMap != null) {
String path = stringMap.get("path");
String moduleVersion = stringMap.get("moduleVersion");
// 将 path 和 moduleVersion 设置到 innerMap 中
String pathPrefix = fileUploadComponent.getUrlPrefix();
innerMap.put("path", pathPrefix + path);
innerMap.put("moduleVersion", moduleVersion);
}
}
}
return map;
}
}

42
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormTypeEnum.java

@ -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);
}
}

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormUrlEnum.java

@ -11,11 +11,11 @@ public enum OaFormUrlEnum {
/**
* 编辑页面地址
*/
HRHIREAPPLY_EDIT(InnerEnum.editUrl.printValue(), "approval/#/pages/EditOnboradingApplyActivity?sid="),
HRHIREAPPLY_EDIT(InnerEnum.editUrl.printValue(), "approval/#/pages/EditOnboradingApplyActivity"),
/**
* 详情页面地址
*/
HRHIREAPPLY_DETAIL(InnerEnum.detailUrl.printValue(), "approval/#/pages/DetailOnboradingApplyActivity?sid="),
HRHIREAPPLY_DETAIL(InnerEnum.detailUrl.printValue(), "approval/#/pages/DetailOnboradingApplyActivity"),
/**
* 获取操作标题接口地址
*/

21
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oalinkform/OaLinkform.java

@ -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;
}

14
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oalinkform/OaLinkformMapper.java

@ -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> {
}

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oalinkform/OaLinkformMapper.xml

@ -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>

13
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oalinkform/OaLinkformService.java

@ -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> {
}

23
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/appsubsetversion/AppSubsetVersionFeign.java

@ -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);
}

74
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/portal/appsubsetversion/AppSubsetVersionVo.java

@ -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…
Cancel
Save