diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java
index 01b2c08ca4..579a450cdd 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java
@@ -25,16 +25,24 @@
*********************************************************/
package com.yxt.anrui.oa.api;
+import cn.hutool.core.bean.BeanUtil;
+import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto;
+import com.yxt.anrui.oa.biz.oaform.flowable.NodeQuery;
+import com.yxt.anrui.oa.biz.oaform.flowable.NodeVo;
+import com.yxt.anrui.oa.biz.oaform.flowable.TaskQuery;
import com.yxt.anrui.oa.biz.oamendapply.*;
+import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
+import java.util.List;
/**
* Project: yxt-oa(补卡申请)
@@ -93,5 +101,4 @@ public class OaMendApplyRest {
return oaMendApplyService.submit(dto);
}
-
}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java
index 2ca5b6300b..a54dffbfec 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java
@@ -25,14 +25,20 @@
*********************************************************/
package com.yxt.anrui.oa.biz.oaappendix;
+import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
@Service
public class OaAppendixService extends MybatisBaseService {
+ @Autowired
+ private FileUploadComponent fileUploadComponent;
+
public List fetchByLinkSid(String linkSid) {
return baseMapper.fetchByLinkSid(linkSid);
}
@@ -46,4 +52,29 @@ public class OaAppendixService extends MybatisBaseService files, String attachType) {
+ List oaAppendixList = new ArrayList<>();
+ if (!files.isEmpty()) {
+ for (String file : files) {
+ String filePath = file.replace(fileUploadComponent.getUrlPrefix(), "");
+ OaAppendix oaAppendix = new OaAppendix();
+ oaAppendix.setLinkSid(sid);
+ oaAppendix.setAttachType(attachType);
+ oaAppendix.setFilePath(filePath);
+ oaAppendixList.add(oaAppendix);
+ }
+ }
+ saveOrUpdateFile(sid, oaAppendixList);
+ }
+
+ public List selectByLinkSid(String sid) {
+ List fileList = fetchByLinkSid(sid);
+ List files = new ArrayList<>();
+ for (OaAppendix oaAppendix : fileList) {
+ String url = fileUploadComponent.getUrlPrefix() + oaAppendix.getFilePath();
+ files.add(url);
+ }
+ return files;
+ }
}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java
index 001cbbf4f4..949d3a7894 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java
@@ -13,8 +13,12 @@ import java.util.Date;
**/
@Data
public class OaFormDto {
-
+ @ApiModelProperty("创建人sid")
private String createBySid;
+ @ApiModelProperty("组织机构全路径")
private String orgSidPath;
+ @ApiModelProperty("申请单编号的字母")
private String billNo;
+ @ApiModelProperty("sid")
+ private String sid;
}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java
index 1246c23206..a5e867da8e 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java
@@ -79,9 +79,16 @@ public class OaFormService extends MybatisBaseService {
return rb.success().setData(sid);
}*/
+ /**
+ * 保存oaform表单
+ *
+ * @param dto
+ * @return
+ */
public ResultBean saveOaForm(OaFormDto dto) {
ResultBean rb = ResultBean.fireFail();
OaForm oaForm = new OaForm();
+ BeanUtil.copyProperties(dto, oaForm, "billNo", "orgSidPath");
OrgVo orgVo = sysStaffOrgFeign.getOrgByPath(dto.getOrgSidPath()).getData();
BeanUtil.copyProperties(orgVo, oaForm);
// 生成单据编号
@@ -92,7 +99,6 @@ public class OaFormService extends MybatisBaseService {
int i = baseMapper.selectNum(bill);
String billNo = Rule.getBillNo(bill, i);
oaForm.setBillNo(billNo);
- oaForm.setCreateBySid(dto.getCreateBySid());
oaForm.setCreateOrgSid(oaForm.getUseOrgSid());
oaForm.setCreateOrgName(oaForm.getUseOrgName());
@@ -127,6 +133,12 @@ public class OaFormService extends MybatisBaseService {
return rb.success();
}
+ /**
+ * 更新oaform表单的流程相关字段
+ *
+ * @param oaFormFlowDto
+ * @return
+ */
public int updateFlow(OaFormFlowDto oaFormFlowDto) {
OaForm oaForm = fetchBySid(oaFormFlowDto.getSid());
if (StringUtils.isBlank(oaForm.getFormType())) {
@@ -140,11 +152,11 @@ public class OaFormService extends MybatisBaseService {
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
+ String formSid = bv.getFormVariables().get("formSid").toString();
String businessSid = bv.getBusinessSid();
- OaForm oaForm = fetchBySid(businessSid);
- Map variables = new HashMap<>();
- //网关
-
+ OaForm oaForm = fetchBySid(formSid);
+ //添加网关
+ Map variables = bv.getFormVariables();
Map appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
@@ -159,7 +171,8 @@ public class OaFormService extends MybatisBaseService {
}
UpdateFlowFieldVo ufVo = resultBean.getData();
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
- BeanUtil.copyProperties(ufVo, oaFormFlowDto);
+ BeanUtil.copyProperties(ufVo, oaFormFlowDto, "sid");
+ oaFormFlowDto.setSid(formSid);
updateFlow(oaFormFlowDto);
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
@@ -403,12 +416,16 @@ public class OaFormService extends MybatisBaseService {
public ResultBean submit(BusinessVariables bv) {
+ String businessSid = bv.getBusinessSid();
+ String formSid = bv.getFormVariables().get("formSid").toString();
+ //启动流程
ResultBean voResultBean = flowFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
- BeanUtil.copyProperties(ufVo, oaFormFlowDto);
+ BeanUtil.copyProperties(ufVo, oaFormFlowDto, "sid");
+ oaFormFlowDto.setSid(formSid);
updateFlow(oaFormFlowDto);
- OaForm oaForm = fetchBySid(bv.getBusinessSid());
+ OaForm oaForm = fetchBySid(bv.getFormVariables().get("formSid").toString());
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@@ -422,7 +439,7 @@ public class OaFormService extends MybatisBaseService {
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap((Map) bv.getFormVariables().get("app"));
- messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
+ messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName(oaForm.getFormType());
messageFlowableQuery.setMsgContent(oaForm.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle(oaForm.getFormType());
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java
index 5726e04ab5..3ed42f4ba2 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.HashMap;
+import java.util.Map;
/**
* @description:
@@ -34,4 +36,6 @@ public class CompleteDto implements Dto {
private String businessSid;
private String orgPath;
+
+ private Map formVariables = new HashMap<>();
}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java
index 462e1d91ae..8d3c397140 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.HashMap;
+import java.util.Map;
/**
* @description:
@@ -18,4 +20,6 @@ public class NodeQuery {
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
+
+ private Map formVariables = new HashMap<>();
}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java
index 009df0cccc..04890e7e14 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.HashMap;
+import java.util.Map;
/**
* @description:
@@ -43,4 +45,6 @@ public class TaskQuery {
@ApiModelProperty("流程实例Id(移动)")
private String procInsId;
+
+ private Map formVariables = new HashMap<>();
}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDetailsVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDetailsVo.java
deleted file mode 100644
index a9d79ffbfc..0000000000
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDetailsVo.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*********************************************************
- *********************************************************
- ******************** *******************
- ************* ************
- ******* _oo0oo_ *******
- *** o8888888o ***
- * 88" . "88 *
- * (| -_- |) *
- * 0\ = /0 *
- * ___/`---'\___ *
- * .' \\| |// '. *
- * / \\||| : |||// \ *
- * / _||||| -:- |||||- \ *
- * | | \\\ - /// | | *
- * | \_| ''\---/'' |_/ | *
- * \ .-\__ '-' ___/-. / *
- * ___'. .' /--.--\ `. .'___ *
- * ."" '< `.___\_<|>_/___.' >' "". *
- * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
- * \ \ `_. \_ __\ /__ _/ .-` / / *
- * =====`-.____`.___ \_____/___.-`___.-'===== *
- * `=---=' *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
- *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
- *********************************************************/
-package com.yxt.anrui.oa.biz.oamendapply;
-
-
-import com.yxt.common.core.vo.Vo;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * Project: yxt-oa(补卡申请)
- * File: OaMendApplyVo.java
- * Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo
- * Description: 补卡申请 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2024-12-04 14:14:34
- *
- * @author liupopo
- * @version 1.0
- * @since 1.0
- */
-@Data
-@ApiModel(value = "补卡申请 视图数据详情", description = "补卡申请 视图数据详情")
-public class OaMendApplyDetailsVo implements Vo {
-
- private static final long serialVersionUID = -8377279007782913681L;
- private String sid;
-
- @ApiModelProperty("补卡原因")
- private String remarks;
- @ApiModelProperty("单据编号")
- private String billNo;
- @ApiModelProperty("申请人")
- private String createByName;
- private String createBySid;
- @ApiModelProperty("申请部门sid")
- private String deptSid;
- @ApiModelProperty("申请部门名称")
- private String deptName;
- @ApiModelProperty("补卡时间")
- private String time;
- @ApiModelProperty("分公司sid")
- private String useOrgSid;
- @ApiModelProperty("分公司名称")
- private String useOrgName;
- @ApiModelProperty("图片")
- private List files = new ArrayList<>();
-}
\ No newline at end of file
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyInitVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyInitVo.java
deleted file mode 100644
index 2ad8b34396..0000000000
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyInitVo.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*********************************************************
- *********************************************************
- ******************** *******************
- ************* ************
- ******* _oo0oo_ *******
- *** o8888888o ***
- * 88" . "88 *
- * (| -_- |) *
- * 0\ = /0 *
- * ___/`---'\___ *
- * .' \\| |// '. *
- * / \\||| : |||// \ *
- * / _||||| -:- |||||- \ *
- * | | \\\ - /// | | *
- * | \_| ''\---/'' |_/ | *
- * \ .-\__ '-' ___/-. / *
- * ___'. .' /--.--\ `. .'___ *
- * ."" '< `.___\_<|>_/___.' >' "". *
- * | | : `- \`.;`\ _ /`;.`/ - ` : | | *
- * \ \ `_. \_ __\ /__ _/ .-` / / *
- * =====`-.____`.___ \_____/___.-`___.-'===== *
- * `=---=' *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
- *********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
- *********************************************************/
-package com.yxt.anrui.oa.biz.oamendapply;
-
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.yxt.common.core.vo.Vo;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * Project: yxt-oa(补卡申请)
- * File: OaMendApplyVo.java
- * Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo
- * Description: 补卡申请 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2024-12-04 14:14:34
- *
- * @author liupopo
- * @version 1.0
- * @since 1.0
- */
-@Data
-@ApiModel(value = "补卡申请 视图数据对象", description = "补卡申请 视图数据对象")
-public class OaMendApplyInitVo implements Vo {
-
- private static final long serialVersionUID = -2109900644174208483L;
- private String sid; // sid
- private String createBySid;
- private String orgPath;
-
- @ApiModelProperty("单据编号")
- private String billNo;
- @ApiModelProperty("申请人")
- private String createByName;
- @ApiModelProperty("申请部门sid")
- private String deptSid;
- @ApiModelProperty("申请部门名称")
- private String deptName;
- @ApiModelProperty("补卡时间")
- private String time;
- @ApiModelProperty("分公司sid")
- private String useOrgSid;
- @ApiModelProperty("分公司名称")
- private String useOrgName;
- @ApiModelProperty("实例id")
- private String procInstId;
- @ApiModelProperty("流程定义id")
- private String procDefId;
- @ApiModelProperty("任务id")
- private String taskId;
-
-}
diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java
index 36c6a4de66..b2c9b4931a 100644
--- a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java
+++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java
@@ -41,12 +41,8 @@ import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum;
import com.yxt.anrui.oa.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowFeign;
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.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo;
-import com.yxt.anrui.oa.feign.portal.sysstafforg.SysStaffOrgFeign;
-import com.yxt.anrui.oa.feign.sysuser.SysUserFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
@@ -69,12 +65,6 @@ public class OaMendApplyService extends MybatisBaseService saveOrUpdateDto(OaMendApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
@@ -157,7 +153,7 @@ public class OaMendApplyService extends MybatisBaseService resultBean = oaFormService.saveOaForm(oaFormDto);
@@ -169,7 +165,7 @@ public class OaMendApplyService extends MybatisBaseService files) {
+ private void saveFiles(String sid, List files, String attachType) {
files.removeAll(Collections.singleton(null));
- List oaAppendixList = new ArrayList<>();
- if(!files.isEmpty()){
- for (String file : files) {
- String filePath = file.replace(fileUploadComponent.getUrlPrefix(), "");
- OaAppendix oaAppendix = new OaAppendix();
- oaAppendix.setLinkSid(sid);
- oaAppendix.setAttachType(OaFileEnum.OAMENDAPPLY.getAttachType());
- oaAppendix.setFilePath(filePath);
- oaAppendixList.add(oaAppendix);
- }
- }
-
- oaAppendixService.saveOrUpdateFile(sid, oaAppendixList);
-
+ oaAppendixService.saveFile(sid, files, attachType);
}
public OaMendApplyVo fetchDetailsVoBySid(String sid) {
OaMendApplyVo vo = baseMapper.fetchDetailsVoBySid(sid);
- List oaAppendices = oaAppendixService.fetchByLinkSid(sid);
- List files = new ArrayList<>();
- for (OaAppendix oaAppendix : oaAppendices) {
- String url = fileUploadComponent.getUrlPrefix() + oaAppendix.getFilePath();
- files.add(url);
- }
+ List files = oaAppendixService.selectByLinkSid(sid);
vo.setFiles(files);
return vo;
}
@@ -233,25 +211,22 @@ public class OaMendApplyService extends MybatisBaseService variables = new HashMap<>();
+ variables.put("formSid", oaMendApply.getFormSid());
//用户的部门全路径sid
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaMendApply.getOaForm().getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
- //业务sid
-// bv.setBusinessSid(businessSid);
- bv.setBusinessSid(oaMendApply.getFormSid());
- //用户sid
+ bv.setBusinessSid(businessSid);
bv.setUserSid(oaMendApply.getCreateBySid());
//若app移动端有此功能,则传递appMap参数
Map appMap = new HashMap<>();
-// appMap.put("sid", businessSid);
- appMap.put("sid", oaMendApply.getFormSid());
+ appMap.put("sid", businessSid);
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("app", appMap);
//网关
//流程定义id
bv.setModelId(ProcDefEnum.OAMENDAPPLY.getProDefId());
- SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaMendApply.getOaForm().getDeptSid()).getData();
+ SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData();
if (StringUtils.isBlank(organizationVo.getManagerSid())) {
return rb.setMsg("请先设置该部门的主管人员");
}
@@ -269,6 +244,7 @@ public class OaMendApplyService extends MybatisBaseService