feat(REQ-4196) - 调整金额组件值处理逻辑

This commit is contained in:
wangli 2025-05-16 17:38:22 +08:00
parent 2574e0469d
commit c41bc147ce
3 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,33 @@
package cn.axzo.workflow.common.model.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 金额字段值类型
*
* @author wangli
* @since 2025-05-16 17:21
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class AmountFieldDTO implements Serializable {
private static final long serialVersionUID = -3519991080707599177L;
/**
* 小写
*/
private BigDecimal standardNumerals;
/**
* 大写
*/
private String uppercaseNumerals;
}

View File

@ -1,6 +1,7 @@
package cn.axzo.workflow.core.engine.cmd;
import cn.axzo.workflow.common.exception.WorkflowEngineException;
import cn.axzo.workflow.common.model.dto.AmountFieldDTO;
import cn.axzo.workflow.common.model.dto.UploadFieldDTO;
import cn.axzo.workflow.core.engine.cmd.helper.FormFieldClone;
import cn.axzo.workflow.form.engine.model.CustomSimpleFormModel;
@ -381,6 +382,17 @@ public class CustomGetFormInstanceModelCmd extends GetFormInstanceModelCmd {
throw new WorkflowEngineException(FORM_DATA_PARSE_ERROR_BY_CUSTOM_COMPONENT);
}
}
} else if (FormFieldTypes.AMOUNT.equals(field.getType())) {
if (variables.containsKey(field.getId())) {
String amountValue = (String) variables.get(field.getId());
try {
AmountFieldDTO amount = formEngineConfiguration.getObjectMapper().readValue(amountValue, new TypeReference<AmountFieldDTO>() {
});
field.setValue(amount);
} catch (JsonProcessingException e) {
throw new FlowableException("Error parsing amount json value: " + amountValue, e);
}
}
} else {
Object variableValue = variables.get(field.getId());
if (variableValue != null) {

View File

@ -39,6 +39,11 @@ public class BasedInitiatorSpecifiedTaskAssigneeSelector extends AbstractBpmnTas
return ApproverSpecifyEnum.initiatorSpecified.getType();
}
@Override
public boolean support(String param) {
return getType().equals(param) || ApproverSpecifyEnum.signerRelated.getType().equals(param);
}
@Override
public List<BpmnTaskDelegateAssigner> select(FlowElement flowElement, DelegateExecution execution, Boolean throwException) {
List<BpmnTaskDelegateAssigner> assigners = new ArrayList<>();