diff --git a/src/main/java/com/ai/da/controller/DesignController.java b/src/main/java/com/ai/da/controller/DesignController.java index ac1d25bd..9b365fd9 100644 --- a/src/main/java/com/ai/da/controller/DesignController.java +++ b/src/main/java/com/ai/da/controller/DesignController.java @@ -31,6 +31,12 @@ public class DesignController { return Response.success(designService.designCollection(designDTO)); } + @ApiOperation(value = "design进度条") + @GetMapping("/designProcess") + public Response designProcess(@RequestParam("processId") String processId) { + return Response.success(designService.designProcess(processId)); + } + @ApiOperation(value = "重新设计 Collection") @PostMapping("/reDesignCollection") public Response reDesignCollection(@Valid @RequestBody ReDesignCollectionDTO reDesignDTO) { diff --git a/src/main/java/com/ai/da/mapper/entity/SysFile.java b/src/main/java/com/ai/da/mapper/entity/SysFile.java index 5072ab10..0790bcfd 100644 --- a/src/main/java/com/ai/da/mapper/entity/SysFile.java +++ b/src/main/java/com/ai/da/mapper/entity/SysFile.java @@ -51,6 +51,10 @@ public class SysFile implements Serializable { * */ private String md5; + + private Integer high; + + private Integer width; /** * 路径 绝对路径 * diff --git a/src/main/java/com/ai/da/model/vo/DesignCollectionVO.java b/src/main/java/com/ai/da/model/vo/DesignCollectionVO.java index b23f2c98..8ad6e7a4 100644 --- a/src/main/java/com/ai/da/model/vo/DesignCollectionVO.java +++ b/src/main/java/com/ai/da/model/vo/DesignCollectionVO.java @@ -21,6 +21,8 @@ public class DesignCollectionVO { @ApiModelProperty("design生成的图片 数组") private List designCollectionItems; + private String processId; + public DesignCollectionVO() { } } diff --git a/src/main/java/com/ai/da/model/vo/SysFileVO.java b/src/main/java/com/ai/da/model/vo/SysFileVO.java index 3f99d2c6..7c1851c6 100644 --- a/src/main/java/com/ai/da/model/vo/SysFileVO.java +++ b/src/main/java/com/ai/da/model/vo/SysFileVO.java @@ -34,4 +34,8 @@ public class SysFileVO implements Serializable { */ private String md5; + private Integer high; + + private Integer width; + } diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java index fcfc32c1..009ea9ee 100644 --- a/src/main/java/com/ai/da/python/PythonService.java +++ b/src/main/java/com/ai/da/python/PythonService.java @@ -191,7 +191,7 @@ public class PythonService { DesignPythonObjects designPythonObjects = new DesignPythonObjects(); List objects = Lists.newArrayList(); designPythonObjects.setObjects(objects); - designPythonObjects.setProcess_id("1234"); + designPythonObjects.setProcess_id(UUID.randomUUID().toString()); long pinPrintNum = calculateDesignPinPrintNum(elementVO.getPrintBoardElements()); long noPinPrintNum = calculateDesignNoPinPrintNum(elementVO.getPrintBoardElements()); //没有print的 diff --git a/src/main/java/com/ai/da/python/vo/ProcessIdObject.java b/src/main/java/com/ai/da/python/vo/ProcessIdObject.java new file mode 100644 index 00000000..98b0c7f6 --- /dev/null +++ b/src/main/java/com/ai/da/python/vo/ProcessIdObject.java @@ -0,0 +1,8 @@ +package com.ai.da.python.vo; + +import lombok.Data; + +@Data +public class ProcessIdObject { + private String process_id; +} diff --git a/src/main/java/com/ai/da/service/DesignService.java b/src/main/java/com/ai/da/service/DesignService.java index 282548d0..3f611b30 100644 --- a/src/main/java/com/ai/da/service/DesignService.java +++ b/src/main/java/com/ai/da/service/DesignService.java @@ -76,4 +76,6 @@ public interface DesignService extends IService { * @return */ DesignItemDetailVO detail(Long designPythonOutfitId,Long designItemId); + + Integer designProcess(String processId); } diff --git a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java index 6b0e4ab8..d2883654 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java @@ -468,7 +468,7 @@ public class CollectionElementServiceImpl extends ServiceImpl impleme } } } - + response.setProcessId(pythonObjects.getProcess_id()); return response; } @@ -627,9 +629,9 @@ public class DesignServiceImpl extends ServiceImpl impleme Assert.notNull(design, "design does not exist!"); List designItems = designItemService.getByDesignId(designId); if (CollectionUtils.isEmpty(designItems)) { - return new DesignCollectionVO(designId, design.getCollectionId(), null); + return new DesignCollectionVO(designId, design.getCollectionId(), null, null); } - return new DesignCollectionVO(designId, design.getCollectionId(), coverDesignItemToVO(designItems)); + return new DesignCollectionVO(designId, design.getCollectionId(), coverDesignItemToVO(designItems), null); } private List coverDesignItemToVO(List designItems) { @@ -857,6 +859,54 @@ public class DesignServiceImpl extends ServiceImpl impleme editResponseColor(designItemDetails,response)); } + @Override + public Integer designProcess(String processId) { + ProcessIdObject object = new ProcessIdObject(); + object.setProcess_id(processId); + OkHttpClient client = new OkHttpClient().newBuilder() + .connectTimeout(30, TimeUnit.SECONDS) + .pingInterval(5, TimeUnit.SECONDS)//websocket轮训间隔(单位:秒) + .readTimeout(60, TimeUnit.SECONDS)//读取超时(单位:秒) + .writeTimeout(60, TimeUnit.SECONDS)//写入超时(单位:秒) + .build(); + MediaType mediaType = MediaType.parse("application/json"); + //关闭FastJson的引用检测 防止出现$ref 现象 + String param = JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect); + log.info("design请求python 参数:####{}", param); + RequestBody body = RequestBody.create(mediaType, param); + Request request = new Request.Builder() + .url("http://18.167.251.121:9991/api/model_process") +// .url(accessPythonIp + ":10200/aifda/api/v1.0/generate") + .method("POST", body) +// .addHeader("Authorization", "Basic YWlkbGFiOjEyMw==") + .addHeader("Content-Type", "application/json") + .build(); + Response response = null; + try { + response = client.newCall(request).execute(); + } catch (IOException ioException) { + log.error("PythonService##design异常###{}", ExceptionUtil.getThrowableList(ioException)); + } + //去除限流 +// AccessLimitUtils.validateOut("design"); + if (Objects.isNull(response)) { + log.error("PythonService##design异常###{}", "response or body is empty!"); + throw new BusinessException("system error!"); + } + if (response.isSuccessful()) { + try { + String responseBody = response.body().string(); + JSONObject responseObject = JSON.parseObject(responseBody); + String num = responseObject.getString("data"); + return Integer.valueOf(num); + }catch (IOException e) { + throw new RuntimeException(e); + } + } + //生成失败 + throw new BusinessException("generate design exception!"); + } + private String converTypeToLevel1(String type) { if (StringUtils.isEmpty(type)) { return null; diff --git a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java index d4b79d32..04af4d86 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java @@ -267,6 +267,8 @@ public class LibraryServiceImpl extends ServiceImpl impl sysFile.setUrl(filePath); sysFile.setMd5(uploadDTO.getMd5()); sysFile.setCreateDate(new Date()); + sysFile.setHigh(uploadDTO.getHigh()); + sysFile.setWidth(uploadDTO.getWidth()); sysFileMapper.insert(sysFile); Library library = new Library(); library.setId(sysFile.getId());