|
|
@ -1,6 +1,20 @@ |
|
|
|
package com.qs.serve.modules.tbs.service.impl; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.qs.serve.common.config.properties.ProjectProperties; |
|
|
|
import com.qs.serve.common.framework.manager.AsyncFactory; |
|
|
|
import com.qs.serve.common.framework.manager.AsyncManager; |
|
|
|
import com.qs.serve.common.model.dto.R; |
|
|
|
import com.qs.serve.common.util.*; |
|
|
|
import com.qs.serve.common.util.model.DateFormatString; |
|
|
|
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo; |
|
|
|
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; |
|
|
|
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; |
|
|
|
import com.qs.serve.modules.sys.entity.SysUser; |
|
|
|
import com.qs.serve.modules.sys.service.SysUserService; |
|
|
|
import com.qs.serve.modules.tbs.common.TbsBudgetCheckState; |
|
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
|
|
|
import com.qs.serve.modules.tbs.entity.TbsBudgetBatchItem; |
|
|
|
import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBatchBo; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
@ -9,6 +23,12 @@ import com.qs.serve.modules.tbs.entity.TbsBudgetBatch; |
|
|
|
import com.qs.serve.modules.tbs.service.TbsBudgetBatchService; |
|
|
|
import com.qs.serve.modules.tbs.mapper.TbsBudgetBatchMapper; |
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
/** |
|
|
|
* 批量申请 服务实现类 |
|
|
|
* @author YenHex |
|
|
@ -19,10 +39,78 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetBatchMapper; |
|
|
|
@AllArgsConstructor |
|
|
|
public class TbsBudgetBatchServiceImpl extends ServiceImpl<TbsBudgetBatchMapper,TbsBudgetBatch> implements TbsBudgetBatchService { |
|
|
|
|
|
|
|
private final SysUserService sysUserService; |
|
|
|
private final SeeYonRequestService seeYonService; |
|
|
|
private final ProjectProperties projectProperties; |
|
|
|
|
|
|
|
@Override |
|
|
|
public Object commit(TbsBudgetBatchBo param) { |
|
|
|
return null; |
|
|
|
|
|
|
|
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); |
|
|
|
String batchCode = CodeGenUtil.generate(CodeGenUtil.SourceKey.BudgetBatch); |
|
|
|
String templateCode = TbsSeeYonConst.BudgetBatchApplyConf.Code(); |
|
|
|
//构建Batch
|
|
|
|
TbsBudgetBatch budgetBatch = new TbsBudgetBatch(); |
|
|
|
budgetBatch.setBatchTitle(sysUser.getName()+"发起了批量导入预算"); |
|
|
|
budgetBatch.setBatchCode(batchCode); |
|
|
|
budgetBatch.setBatchState(TbsBudgetCheckState.State_0_unPublish); |
|
|
|
//budgetBatch.setSyFormId();
|
|
|
|
budgetBatch.setUserId(sysUser.getId()); |
|
|
|
budgetBatch.setUserCode(sysUser.getCode()); |
|
|
|
budgetBatch.setUserName(sysUser.getName()); |
|
|
|
budgetBatch.setSubmitTime(LocalDateTime.now()); |
|
|
|
budgetBatch.setRemark(param.getRemark()); |
|
|
|
|
|
|
|
//保存后赋值
|
|
|
|
Long budgetBatchId = budgetBatch.getId(); |
|
|
|
//新增的生成为草稿
|
|
|
|
//修改的生成为更变记录
|
|
|
|
|
|
|
|
//构建BatchItems
|
|
|
|
List<TbsBudgetBatchItem> batchItems = new ArrayList<>(); |
|
|
|
|
|
|
|
Map<String,Object> data = new HashMap<>(); |
|
|
|
data.put("exsp5", batchCode); |
|
|
|
data.put("orgId", budgetBatchId); |
|
|
|
data.put("applyUserCode", sysUser.getCode()); |
|
|
|
data.put("applyUserName", sysUser.getName()); |
|
|
|
data.put("empId", sysUser.getSyUserId()); |
|
|
|
data.put("targetId", budgetBatchId); |
|
|
|
data.put("targetCode", batchCode); |
|
|
|
data.put("budgetCode", batchCode); |
|
|
|
data.put("exsp1", templateCode); |
|
|
|
//添加跳转地址业务
|
|
|
|
String baseJumpUrl = JumpToUtil.getJumpUrl(projectProperties.getWebUrl(),templateCode,budgetBatchId+""); |
|
|
|
data.put("cmsLink",baseJumpUrl); |
|
|
|
data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); |
|
|
|
data.put("rowState","03"); |
|
|
|
|
|
|
|
BaseCreateProcessBo createProcess = new BaseCreateProcessBo(); |
|
|
|
createProcess.setTemplateCode(templateCode); |
|
|
|
createProcess.setMemberLoginName(sysUser.getSyAccount()); |
|
|
|
createProcess.setSubjectTitle("[预算导入]"+budgetBatch.getBatchTitle()); |
|
|
|
createProcess.setTargetId(budgetBatchId+""); |
|
|
|
createProcess.setDataJson(JsonUtil.objectToJson(data)); |
|
|
|
R<String> flowIdResult = seeYonService.baseCreateProcess(createProcess); |
|
|
|
if(flowIdResult.getStatus()!=200){ |
|
|
|
Assert.throwEx("远程服务调用失败"); |
|
|
|
} |
|
|
|
String formId = null; |
|
|
|
R<String> formIdResult = seeYonService.getFormId(templateCode,budgetBatchId); |
|
|
|
if(formIdResult.getStatus()==200){ |
|
|
|
formId = formIdResult.getData(); |
|
|
|
} |
|
|
|
|
|
|
|
budgetBatch.setSubmitTime(LocalDateTime.now()); |
|
|
|
budgetBatch.setBatchState(TbsBudgetCheckState.State_1_apply); |
|
|
|
budgetBatch.setSyFormId(formId); |
|
|
|
this.updateById(budgetBatch); |
|
|
|
//创建流程后回调
|
|
|
|
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(templateCode,budgetBatchId+""); |
|
|
|
seeYonService.createCallbackStatus(callbackBo); |
|
|
|
//请求校验是否成功
|
|
|
|
AsyncManager.me().execute(AsyncFactory.submitBudgetBatch(budgetBatchId+"")); |
|
|
|
return budgetBatch; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|