diff --git a/seer-mp/seer-mp-service-app/src/main/java/com/seer/teach/mp/app/service/impl/AppActivityFormExecutionServiceImpl.java b/seer-mp/seer-mp-service-app/src/main/java/com/seer/teach/mp/app/service/impl/AppActivityFormExecutionServiceImpl.java index b84cf86..d023905 100644 --- a/seer-mp/seer-mp-service-app/src/main/java/com/seer/teach/mp/app/service/impl/AppActivityFormExecutionServiceImpl.java +++ b/seer-mp/seer-mp-service-app/src/main/java/com/seer/teach/mp/app/service/impl/AppActivityFormExecutionServiceImpl.java @@ -3,6 +3,7 @@ package com.seer.teach.mp.app.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.seer.teach.common.utils.OrderIdGenerator; import com.seer.teach.mp.app.controller.req.ActivityFormSubmitReq; +import com.seer.teach.mp.app.controller.resp.AppActivityFormFieldResp; import com.seer.teach.mp.app.controller.resp.AppFormFieldWithValueResp; import com.seer.teach.mp.app.convert.AppActivityFormConvert; import com.seer.teach.mp.app.service.IAppActivityFormExecutionService; @@ -14,10 +15,12 @@ import com.seer.teach.mp.service.IMpActivityFormFieldService; import com.seer.teach.mp.service.IMpActivityFormVariableService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -135,14 +138,21 @@ public class AppActivityFormExecutionServiceImpl implements IAppActivityFormExec public AppFormFieldWithValueResp getExecutionWithFormData(Integer activityId, Integer agentId, Integer userId) { MpActivityFormExecutionEntity execution = activityFormExecutionService.getOneByActivityIdAndAgentIdAndSubmitterId(activityId, agentId, userId); if (Objects.isNull(execution)) { + log.warn("未找到该用户的执行记录,活动ID:{},代理ID:{},用户ID:{}", activityId, agentId, userId); return null; } // 获取表单字段定义 List fieldDefinitions = activityFormFieldService.getFieldListByFormId(execution.getFormId()); - + if(CollectionUtil.isEmpty(fieldDefinitions)){ + log.warn("表单字段定义为空,表单ID:{}", execution.getFormId()); + return null; + } // 获取表单提交的数据 List variables = activityFormVariableService.getListByExecutionId(execution.getId()); - + if(CollectionUtil.isEmpty(variables)){ + log.warn("表单提交数据为空,执行ID:{}", execution.getId()); + return null; + } Map formData = new HashMap<>(); for (MpActivityFormVariableEntity variable : variables) { Object value = convertValueByType(variable.getVariableValue(), variable.getDataType()); @@ -157,16 +167,19 @@ public class AppActivityFormExecutionServiceImpl implements IAppActivityFormExec response.setFormId(execution.getFormId()); response.setSubmitterId(execution.getSubmitterId()); // 组合字段定义和对应的值 - List fields = fieldDefinitions.stream() - .map(field -> { - AppFormFieldWithValueResp.FieldWithValueItemResp item = new AppFormFieldWithValueResp.FieldWithValueItemResp(); - item.setFieldDefinition(AppActivityFormConvert.INSTANCE.convertToAppFieldResp(field)); - // 如果有对应的值则设置,否则为null - item.setFieldValue(formData.get(field.getFieldCode())); - return item; - }) - .collect(Collectors.toList()); - + List fields = new ArrayList<>(fieldDefinitions.size()); + for(MpActivityFormFieldEntity field : fieldDefinitions){ + AppFormFieldWithValueResp.FieldWithValueItemResp item = new AppFormFieldWithValueResp.FieldWithValueItemResp(); + AppActivityFormFieldResp appActivityFormFieldResp = AppActivityFormConvert.INSTANCE.convertToAppFieldResp(field); + item.setFieldDefinition(appActivityFormFieldResp); + String filedCode = field.getFieldCode(); + if(StringUtils.isNotEmpty(filedCode)){ + Object object = formData.get(filedCode.trim()); + item.setFieldValue(object); + log.info("字段code:{}, 字段value:{}", appActivityFormFieldResp.getFieldCode(), object); + } + fields.add(item); + } response.setFields(fields); return response;