diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java index c11939376f..1edd211c64 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaFormRest.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.oa.biz.oaform.*; import com.yxt.anrui.oa.biz.oaform.flowable.*; import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables; +import com.yxt.anrui.oa.feign.flowable.flow2.FlowDelegateQuery; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -35,11 +36,11 @@ public class OaFormRest { return rb.success().setData(pv); } - /*@ApiOperation("新增或修改") + @ApiOperation("新增或修改") @PostMapping("/save") ResultBean save(@RequestBody OaFormDto dto) { - return oaFormService.saveOrUpdateForm(dto); - }*/ + return oaFormService.saveOaForm(dto); + } @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") @@ -106,5 +107,4 @@ public class OaFormRest { return oaFormService.assignTask(query); } - } 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 ccbf4ece68..1246c23206 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 @@ -87,7 +87,7 @@ public class OaFormService extends MybatisBaseService { // 生成单据编号 BillNo b = new BillNo(); b.setOrgCode(orgVo.getOrgCode()); - b.setBillType("BKSQ"); + b.setBillType(dto.getBillNo()); String bill = Rule.getBill(b); int i = baseMapper.selectNum(bill); String billNo = Rule.getBillNo(bill, i); @@ -400,4 +400,37 @@ public class OaFormService extends MybatisBaseService { public int updateFormType(OaForm oaForm) { return baseMapper.updateById(oaForm); } + + + public ResultBean submit(BusinessVariables bv) { + ResultBean voResultBean = flowFeign.startProcess(bv); + UpdateFlowFieldVo ufVo = voResultBean.getData(); + OaFormFlowDto oaFormFlowDto = new OaFormFlowDto(); + BeanUtil.copyProperties(ufVo, oaFormFlowDto); + updateFlow(oaFormFlowDto); + OaForm oaForm = fetchBySid(bv.getBusinessSid()); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap((Map) bv.getFormVariables().get("app")); + messageFlowableQuery.setBusinessSid(bv.getBusinessSid()); + messageFlowableQuery.setModuleName(oaForm.getFormType()); + messageFlowableQuery.setMsgContent(oaForm.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle(oaForm.getFormType()); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + return voResultBean; + } } 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 57169260e8..36c6a4de66 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 @@ -45,6 +45,8 @@ 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; @@ -148,19 +150,24 @@ public class OaMendApplyService extends MybatisBaseService rb = ResultBean.fireFail(); String sid = dto.getSid(); List files = dto.getFiles(); + if (StringUtils.isBlank(sid)) { // 新建操作 OaMendApply entity = new OaMendApply(); BeanUtil.copyProperties(dto, entity, "sid"); + OaFormDto oaFormDto = new OaFormDto(); BeanUtil.copyProperties(dto, oaFormDto, "sid"); oaFormDto.setBillNo("BKSQ"); ResultBean resultBean = oaFormService.saveOaForm(oaFormDto); + if (!resultBean.getSuccess()) { return rb; } + entity.setFormSid(resultBean.getData()); baseMapper.insert(entity); + // 处理附件 saveFiles(sid, files); sid = entity.getSid(); @@ -180,7 +187,7 @@ public class OaMendApplyService extends MybatisBaseService files) { files.removeAll(Collections.singleton(null)); List oaAppendixList = new ArrayList<>(); - if (!files.isEmpty()) { + if(!files.isEmpty()){ for (String file : files) { String filePath = file.replace(fileUploadComponent.getUrlPrefix(), ""); OaAppendix oaAppendix = new OaAppendix(); @@ -190,6 +197,7 @@ public class OaMendApplyService extends MybatisBaseService voResultBean = flowFeign.startProcess(bv); - UpdateFlowFieldVo ufVo = voResultBean.getData(); - OaFormFlowDto oaFormFlowDto = new OaFormFlowDto(); - BeanUtil.copyProperties(ufVo, oaFormFlowDto); - oaFormService.updateFlow(oaFormFlowDto); - //==================================添加线程 - try { - ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() - .setNameFormat("demo-pool-%d").build(); - ExecutorService pool = new ThreadPoolExecutor(2, 100, - 0L, TimeUnit.MILLISECONDS, - new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); - oaForm = oaFormService.fetchBySid(oaMendApply.getFormSid()); - OaForm finalOaForm = oaForm; - Future future1 = pool.submit(() -> { - //极光推送 - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo, messageFlowVo); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName(finalOaForm.getFormType()); - messageFlowableQuery.setMsgContent(finalOaForm.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle(finalOaForm.getFormType()); - messageFeign.pushMessage(messageFlowableQuery); - }); - } catch (Exception e) { - e.printStackTrace(); - } - //==================================添加线程 - return voResultBean; + return oaFormService.submit(bv); } if (r == 2) { // ToDo:驳回到发起人后再次提交