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