1.4.2后端:

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

@ -30,7 +30,7 @@ public abstract class AbstractWorkflowService<T> {
startProcess.setBusinessId(strategy.getBusinessId(bo)); startProcess.setBusinessId(strategy.getBusinessId(bo));
startProcess.setVariables(strategy.getVariables(bo)); startProcess.setVariables(strategy.getVariables(bo));
FlowConfigEnum flowConfigEnum = strategy.getFlowConfig(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); boolean flagOne = this.doStartWorkflow(startProcess);
if (!flagOne) { if (!flagOne) {

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

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

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

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

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

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

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

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

Loading…
Cancel
Save