1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package com.fdkankan.contro.service.impl;
- import cn.hutool.core.io.FileUtil;
- import cn.hutool.core.util.ObjectUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.contro.constant.DetectType;
- import com.fdkankan.contro.entity.SceneMarkShape;
- import com.fdkankan.contro.entity.SceneShapeEnum;
- import com.fdkankan.contro.mapper.MarkShapeMapper;
- import com.fdkankan.contro.service.ISceneMarkShapeService;
- import com.fdkankan.contro.service.SceneShapeEnumService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Created by Xiewj on 2021/11/23 0026 10:14
- */
- @Slf4j
- @Service
- public class SceneMarkShapeServiceImpl extends ServiceImpl<MarkShapeMapper, SceneMarkShape> implements ISceneMarkShapeService {
- @Autowired
- private SceneShapeEnumService sceneShapeEnumService;
- @Override
- public SceneMarkShape readDetectJson(String jsonPath) {
- String strings = FileUtil.readString(jsonPath, "UTF-8");
- JSONObject bbbb = JSONObject.parseObject(strings);
- SceneMarkShape parse = JSONObject.toJavaObject(bbbb, SceneMarkShape.class);
- System.out.println(parse);
- if (ObjectUtil.isNull(parse.getShapes())){
- return null;
- }
- List<JSONObject> shapes = parse.getShapes();
- for (JSONObject shape : shapes) {
- SceneShapeEnum category = sceneShapeEnumService.findByClassName(shape.getString("category"));
- if (ObjectUtil.isNull(category)){
- SceneShapeEnum sceneShapeEnum = new SceneShapeEnum();
- sceneShapeEnum.setName(shape.getString("name"));
- sceneShapeEnum.setClassName(shape.getString("category"));
- sceneShapeEnumService.save(sceneShapeEnum);
- }
- }
- return parse;
- }
- @Override
- public List<SceneMarkShape> readDetectJsonStr(String num,String context) {
- JSONObject bbbb = JSONObject.parseObject(context);
- JSONArray imgBoxsList = bbbb.getJSONArray("imgBoxsList");
- List<SceneMarkShape> list = new ArrayList<>();
- for (Object o : imgBoxsList) {
- SceneMarkShape parse = JSONObject.toJavaObject(JSONObject.parseObject(String.valueOf(o)), SceneMarkShape.class);
- System.out.println(parse);
- if (ObjectUtil.isNull(parse.getShapes())){
- return null;
- }
- parse.setType(DetectType.PANO.getCode());
- parse.setNum(num);
- List<JSONObject> shapes = parse.getShapes();
- for (JSONObject shape : shapes) {
- shape.remove("name");
- }
- list.add(parse);
- }
- return list;
- }
- @Override
- public SceneMarkShape findByNumAndImagePathAndType(String num, String imagePath, Integer type) {
- LambdaQueryWrapper<SceneMarkShape> wrapper = Wrappers.lambdaQuery();
- wrapper.eq(SceneMarkShape::getNum,num);
- wrapper.eq(SceneMarkShape::getImagePath,imagePath);
- wrapper.eq(SceneMarkShape::getType,type);
- return getOne(wrapper);
- }
- @Override
- public List<SceneMarkShape> findByNumAndType(String num,Integer type) {
- LambdaQueryWrapper<SceneMarkShape> wrapper = Wrappers.lambdaQuery();
- wrapper.eq(SceneMarkShape::getNum,num);
- wrapper.eq(SceneMarkShape::getType,type);
- return list(wrapper);
- }
- }
|