diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskCreateApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskCreateApi.java index eff2ba7166f09bfa853d38973506e97fc19b380d..fb391c158d90342a7b11e0420da0089bdc58f8cb 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskCreateApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskCreateApi.java @@ -44,6 +44,8 @@ public class ProcessTaskCreateApi extends PrivateApiComponentBase { @Param(name = "hidecomponentList", type = ApiParamType.JSONARRAY, desc = "term.itsm.hidecomponentlist"), @Param(name = "readcomponentList", type = ApiParamType.JSONARRAY, desc = "term.itsm.readcomponentlist"), @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "filePathPrefix", type = ApiParamType.STRING, defaultValue = "file:", desc = "common.filepathprefix"), + @Param(name = "filePathList", type = ApiParamType.JSONARRAY, desc = "common.filepathlist"), @Param(name = "fileIdList", type = ApiParamType.JSONARRAY, desc = "common.fileidlist"), @Param(name = "handlerStepInfo", type = ApiParamType.JSONOBJECT, desc = "term.itsm.handlerstepinfo"), @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskCreatePublicServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskCreatePublicServiceImpl.java index 117d0b0ac123ce306cc96c7df7e31dcdf9e19313..ee8673d366d538ef9ec6b129f56a415cc0bcbf1a 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskCreatePublicServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskCreatePublicServiceImpl.java @@ -8,6 +8,8 @@ import neatlogic.framework.dao.mapper.UserMapper; import neatlogic.framework.dto.AuthenticationInfoVo; import neatlogic.framework.dto.UserVo; import neatlogic.framework.exception.user.UserNotFoundException; +import neatlogic.framework.file.dao.mapper.FileMapper; +import neatlogic.framework.file.dto.FileVo; import neatlogic.framework.form.attribute.core.FormAttributeHandlerFactory; import neatlogic.framework.form.attribute.core.FormHandlerBase; import neatlogic.framework.form.dao.mapper.FormMapper; @@ -33,7 +35,9 @@ import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import javax.activation.MimetypesFileTypeMap; import javax.annotation.Resource; +import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -65,6 +69,9 @@ public class ProcessTaskCreatePublicServiceImpl implements ProcessTaskCreatePubl @Resource private AuthenticationInfoService authenticationInfoService; + @Resource + private FileMapper fileMapper; + /** * 创建工单 * @@ -107,6 +114,28 @@ public class ProcessTaskCreatePublicServiceImpl implements ProcessTaskCreatePubl } paramObj.put("priorityUuid", priorityVo.getUuid()); } + // 附件传递文件路径 + JSONArray filePathList = paramObj.getJSONArray("filePathList"); + if( filePathList != null && filePathList.size() > 0 ){ + String filePathPrefix = paramObj.getString("filePathPrefix"); + JSONArray fileIdList = new JSONArray(); + MimetypesFileTypeMap mimeTypesMap = new MimetypesFileTypeMap(); + for (Object filePath: filePathList ) { + File file = new File(filePath.toString()); + if(file.exists()){ + FileVo fileVo = new FileVo(); + fileVo.setName(file.getName()); + fileVo.setSize(file.length()); + fileVo.setUserUuid(userVo.getUuid()); + fileVo.setType("itsm"); //itsm + fileVo.setContentType(mimeTypesMap.getContentType(filePath.toString())); + fileVo.setPath(filePathPrefix + filePath); + fileMapper.insertFile(fileVo); + fileIdList.add(fileVo.getId()); + } + } + paramObj.put("fileIdList" , fileIdList); + } //流程 String processUuid = channelMapper.getProcessUuidByChannelUuid(channelVo.getUuid()); if (processMapper.checkProcessIsExists(processUuid) == 0) {