SceneMarkShapeServiceImpl.java 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.fdkankan.contro.service.impl;
  2. import cn.hutool.core.io.FileUtil;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  8. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  9. import com.fdkankan.contro.constant.DetectType;
  10. import com.fdkankan.contro.entity.SceneMarkShape;
  11. import com.fdkankan.contro.entity.SceneShapeEnum;
  12. import com.fdkankan.contro.mapper.MarkShapeMapper;
  13. import com.fdkankan.contro.service.ISceneMarkShapeService;
  14. import com.fdkankan.contro.service.SceneShapeEnumService;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. /**
  21. * Created by Xiewj on 2021/11/23 0026 10:14
  22. */
  23. @Slf4j
  24. @Service
  25. public class SceneMarkShapeServiceImpl extends ServiceImpl<MarkShapeMapper, SceneMarkShape> implements ISceneMarkShapeService {
  26. @Autowired
  27. private SceneShapeEnumService sceneShapeEnumService;
  28. @Override
  29. public SceneMarkShape readDetectJson(String jsonPath) {
  30. String strings = FileUtil.readString(jsonPath, "UTF-8");
  31. JSONObject bbbb = JSONObject.parseObject(strings);
  32. SceneMarkShape parse = JSONObject.toJavaObject(bbbb, SceneMarkShape.class);
  33. System.out.println(parse);
  34. if (ObjectUtil.isNull(parse.getShapes())){
  35. return null;
  36. }
  37. List<JSONObject> shapes = parse.getShapes();
  38. for (JSONObject shape : shapes) {
  39. SceneShapeEnum category = sceneShapeEnumService.findByClassName(shape.getString("category"));
  40. if (ObjectUtil.isNull(category)){
  41. SceneShapeEnum sceneShapeEnum = new SceneShapeEnum();
  42. sceneShapeEnum.setName(shape.getString("name"));
  43. sceneShapeEnum.setClassName(shape.getString("category"));
  44. sceneShapeEnumService.save(sceneShapeEnum);
  45. }
  46. }
  47. return parse;
  48. }
  49. @Override
  50. public List<SceneMarkShape> readDetectJsonStr(String num,String context) {
  51. JSONObject bbbb = JSONObject.parseObject(context);
  52. JSONArray imgBoxsList = bbbb.getJSONArray("imgBoxsList");
  53. List<SceneMarkShape> list = new ArrayList<>();
  54. for (Object o : imgBoxsList) {
  55. SceneMarkShape parse = JSONObject.toJavaObject(JSONObject.parseObject(String.valueOf(o)), SceneMarkShape.class);
  56. System.out.println(parse);
  57. if (ObjectUtil.isNull(parse.getShapes())){
  58. return null;
  59. }
  60. parse.setType(DetectType.PANO.getCode());
  61. parse.setNum(num);
  62. List<JSONObject> shapes = parse.getShapes();
  63. for (JSONObject shape : shapes) {
  64. shape.remove("name");
  65. }
  66. list.add(parse);
  67. }
  68. return list;
  69. }
  70. @Override
  71. public SceneMarkShape findByNumAndImagePathAndType(String num, String imagePath, Integer type) {
  72. LambdaQueryWrapper<SceneMarkShape> wrapper = Wrappers.lambdaQuery();
  73. wrapper.eq(SceneMarkShape::getNum,num);
  74. wrapper.eq(SceneMarkShape::getImagePath,imagePath);
  75. wrapper.eq(SceneMarkShape::getType,type);
  76. return getOne(wrapper);
  77. }
  78. @Override
  79. public List<SceneMarkShape> findByNumAndType(String num,Integer type) {
  80. LambdaQueryWrapper<SceneMarkShape> wrapper = Wrappers.lambdaQuery();
  81. wrapper.eq(SceneMarkShape::getNum,num);
  82. wrapper.eq(SceneMarkShape::getType,type);
  83. return list(wrapper);
  84. }
  85. }