1.4.2后端:

fix(市场预算&开票):市场预算申请和开票申请增加编号的保存,工作流的业务编码按照此编号保存
dev
xs 4 weeks ago
parent e09ca4407c
commit aa448a8a9e

@ -30,7 +30,7 @@ public abstract class AbstractWorkflowService<T> {
startProcess.setBusinessId(strategy.getBusinessId(bo));
startProcess.setVariables(strategy.getVariables(bo));
FlowConfigEnum flowConfigEnum = strategy.getFlowConfig(bo);
startProcess.setFlowConfig(flowConfigEnum.getFlowCode(), flowConfigEnum.getBusinessTitle(), "");
startProcess.setFlowConfig(flowConfigEnum.getFlowCode(), flowConfigEnum.getBusinessTitle(), strategy.getBusinessCode(bo));
boolean flagOne = this.doStartWorkflow(startProcess);
if (!flagOne) {

@ -15,6 +15,8 @@ public interface WorkflowStrategy<T> {
String getBusinessId(T bo);
String getBusinessCode(T bo);
Map<String, Object> getVariables(T bo);
FlowConfigEnum getFlowConfig(T bo);

@ -28,9 +28,14 @@ public class ErpBudgetInfo extends TenantEntity {
/**
* ID
*/
@TableId(value = "budget_id", type = IdType.AUTO)
@TableId(value = "budget_id", type = IdType.ASSIGN_ID)
private Long budgetId;
/**
*
*/
private String budgetCode;
/**
* ID
*/

@ -32,6 +32,11 @@ public class ErpBudgetInfoBo extends BaseEntity {
@NotNull(message = "预算ID不能为空", groups = { EditGroup.class })
private Long budgetId;
/**
*
*/
private String budgetCode;
/**
* ID
*/

@ -36,6 +36,11 @@ public class ErpBudgetInfoVo implements Serializable {
@ExcelProperty(value = "预算ID")
private Long budgetId;
/**
*
*/
private String budgetCode;
/**
* ID
*/

@ -28,6 +28,7 @@ import org.dromara.oa.erp.mapper.*;
import org.dromara.oa.excel.MarketProjectBudgetExcelExporter;
import org.dromara.oa.excel.RdProjectBudgetExcelExporter;
import org.dromara.oa.workflow.strategy.BudgetWorkflowStrategy;
import org.dromara.system.api.RemoteCodeRuleService;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.dromara.workflow.enums.FlowConfigEnum;
@ -54,6 +55,8 @@ import java.util.function.Function;
@Service
public class ErpBudgetInfoServiceImpl extends AbstractWorkflowService<ErpBudgetInfoBo> implements IErpBudgetInfoService {
private static final String BUDGET_CODE_RULE = "1032";
private final ErpBudgetInfoMapper baseMapper;
private final ErpBudgetDetailMapper erpBudgetDetailMapper;
@ -98,6 +101,9 @@ public class ErpBudgetInfoServiceImpl extends AbstractWorkflowService<ErpBudgetI
@DubboReference(timeout = 30000)
private RemoteWorkflowService remoteWorkflowService;
@DubboReference(timeout = 30000)
private RemoteCodeRuleService remoteCodeRuleService;
@Override
protected WorkflowStrategy<ErpBudgetInfoBo> getStrategy() {
return new BudgetWorkflowStrategy();
@ -276,8 +282,15 @@ public class ErpBudgetInfoServiceImpl extends AbstractWorkflowService<ErpBudgetI
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(ErpBudgetInfoBo bo) {
String code = remoteCodeRuleService.selectCodeRuleCode(BUDGET_CODE_RULE);
if (StringUtils.isBlank(code)) {
throw new ServiceException("生成回款编号失败");
}
bo.setBudgetCode(code);
ErpBudgetInfo add = MapstructUtils.convert(bo, ErpBudgetInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (add.getProjectCategory().equals(ProjectCategoryEnum.MARKET.getCode())

@ -133,7 +133,7 @@ public class ErpFinAccountInstallmentServiceImpl implements IErpFinAccountInstal
String code = remoteCodeRuleService.selectCodeRuleCode(ACCOUNT_INSTALLMENT_CODE_RULE);
if (StringUtils.isBlank(code)) {
throw new ServiceException("生成项目计划编号失败");
throw new ServiceException("生成回款编号失败");
}
int successNum = 0;

@ -21,6 +21,7 @@ import org.dromara.oa.erp.domain.vo.ErpFinInvoiceDetailVo;
import org.dromara.oa.erp.mapper.ErpContractPaymentMethodMapper;
import org.dromara.oa.erp.mapper.ErpFinInvoiceDetailMapper;
import org.dromara.oa.workflow.strategy.InvoiceWorkflowStrategy;
import org.dromara.system.api.RemoteCodeRuleService;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.dromara.workflow.strategy.AbstractWorkflowService;
@ -48,6 +49,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
@Service
public class ErpFinInvoiceInfoServiceImpl extends AbstractWorkflowService<ErpFinInvoiceInfoBo> implements IErpFinInvoiceInfoService {
private static final String INVOICE_CODE_RULE = "1030";
private final ErpFinInvoiceInfoMapper baseMapper;
private final ErpFinInvoiceDetailMapper erpFinInvoiceDetailMapper;
@ -58,6 +61,8 @@ public class ErpFinInvoiceInfoServiceImpl extends AbstractWorkflowService<ErpFin
@DubboReference(timeout = 30000)
private RemoteWorkflowService remoteWorkflowService;
@DubboReference(timeout = 30000)
private RemoteCodeRuleService remoteCodeRuleService;
@Override
protected WorkflowStrategy<ErpFinInvoiceInfoBo> getStrategy() {
@ -145,8 +150,15 @@ public class ErpFinInvoiceInfoServiceImpl extends AbstractWorkflowService<ErpFin
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(ErpFinInvoiceInfoBo bo) {
String code = remoteCodeRuleService.selectCodeRuleCode(INVOICE_CODE_RULE);
if (StringUtils.isBlank(code)) {
throw new ServiceException("生成回款编号失败");
}
bo.setInvoiceCode(code);
ErpFinInvoiceInfo add = MapstructUtils.convert(bo, ErpFinInvoiceInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
List<ErpFinInvoiceDetail> erpFinInvoiceDetailList = bo.getErpFinInvoiceDetailList();

@ -25,11 +25,17 @@ public class BudgetWorkflowStrategy implements WorkflowStrategy<ErpBudgetInfoBo>
return bo.getBudgetId().toString();
}
@Override
public String getBusinessCode(ErpBudgetInfoBo bo) {
return bo.getBudgetCode();
}
@Override
public Map<String, Object> getVariables(ErpBudgetInfoBo bo) {
Map<String, Object> variables = new HashMap<>();
variables.put("projectId", bo.getProjectId());
variables.put("projectName", bo.getProjectName());
variables.put("businessCode",bo.getBudgetCode());
return variables;
}

@ -26,10 +26,16 @@ public class InvoiceWorkflowStrategy implements WorkflowStrategy<ErpFinInvoiceIn
return bo.getInvoiceId().toString();
}
@Override
public String getBusinessCode(ErpFinInvoiceInfoBo bo) {
return bo.getInvoiceCode();
}
@Override
public Map<String, Object> getVariables(ErpFinInvoiceInfoBo bo) {
Map<String, Object> variables = new HashMap<>();
variables.put("invoiceId", bo.getInvoiceId());
variables.put("invoiceCode",bo.getInvoiceCode());
variables.put("projectId", bo.getProjectId());
variables.put("projectName", bo.getProjectName());
variables.put("earlyFlag", bo.getEarlyFlag());

Loading…
Cancel
Save