package com.fms.controller.tuopu;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.caeit.parser.visioParser.VisioParser;
import com.fms.domain.tuopu.Picture;
import com.fms.service.tuopu.ControlService;
import com.fms.service.tuopu.PicPropertyService;
import com.fms.service.tuopu.PictureService;
import com.fms.utils.ParamUtil;
import com.handu.apollo.base.Page;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.*;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
@RestController
@RequestMapping("/picture")
public class PictureController {
@Autowired
private PictureService pictureService;
@Autowired
private PicPropertyService picPropertyService;
@Autowired
private KafkaTemplate kafkaTemplate;
@Autowired
private ControlService controlService;
@RequestMapping(value = "testPic", method = RequestMethod.GET)
public void testPic() {
System.out.println("test");
}
/**
* 查询拓扑图列表.
*
* @param params
* @return
*/
@RequestMapping("getPictureList")
public Object getPictureList(Map<String, Object> params) {
return pictureService.getList(params);
}
@RequestMapping("delete")
public void delete(String id) {
pictureService.delete(Long.parseLong(id));
}
/**
* 分页查询
*
* @param params
* @param request
* @return
*/
@RequestMapping("page")
public Object page(@RequestParam Map<String, Object> params, HttpServletRequest request) {
Page page = ParamUtil.getPager(request);
return pictureService.page(params, page);
}
@ResponseBody
@RequestMapping("sendDataToKafka")
public void sendDataToKafka(HttpServletRequest request) throws IOException {
String idStr = request.getParameter("id");
Long id = null;
if (StringUtils.isNotEmpty(idStr)) {
id = Long.parseLong(idStr);
}
String jsonData = request.getParameter("json");
String name = request.getParameter("name");
// 将读取的数据转换为JSONObject
JSONObject jsonObject = JSONObject.parseObject(jsonData);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String date = df.format(new Date());
JSONArray btnArray = jsonObject.getJSONArray("datas");
// 循环获取控件
for (int i = 0; i < btnArray.size(); i++) {
String str = "";
JSONObject kongjianObj = btnArray.getJSONObject(i);
JSONObject json = kongjianObj.getJSONObject("json");// "json": {
// }
/* String controlName = "";
if (json.containsKey("name")) {
controlName = json.getString("name");
}*/
JSONObject obj = new JSONObject();
JSONArray data = new JSONArray();
JSONObject obj1 = new JSONObject();
obj.put("operationSource", "XX_PLATFORM");
obj1.put("operationType", "INSERT");
JSONArray columns = new JSONArray();
JSONObject jo = btnArray.getJSONObject(i);
JSONObject properties = null;
/* if (jo.containsKey("properties")) {
properties = JSON.parseObject(json.getString("properties"));
System.out.println(properties);
for (String key : properties.keySet()) {
JSONObject obj3 = new JSONObject();
obj3.put(key, properties.get(key));
columns.add(obj3);
}
}*/
JSONObject columnObj1 = new JSONObject();
if (json.containsKey("properties")) {
properties = JSON.parseObject(json.getString("properties"));
Iterator<String> colIt = properties.keySet().iterator();
while (colIt.hasNext()) {
String jsonKey = colIt.next();
if (jsonKey.equals("id")) {
continue;
}
if (jsonKey.equals("schema")) {
obj1.put("schema", properties.get(jsonKey).toString());
continue;
}
if (jsonKey.equals("table")) {
obj1.put("table", properties.get(jsonKey).toString());
continue;
}
if (jsonKey.equals("dxbm")) {
str= properties.get(jsonKey).toString();
obj1.put("objectCode", "dxbm");
obj1.put("objectCodeValue", str);
continue;
}
JSONObject jsonCol = new JSONObject();
jsonCol.put("name", jsonKey);
jsonCol.put("value", properties.get(jsonKey));
columns.add(jsonCol);
}
columnObj1.put("name", "dxbm");
columnObj1.put("value", str);
columns.add(columnObj1);
obj1.put("columns", columns);
data.add(obj1);
obj.put("data", data);
System.out.println(obj.toJSONString());
kafkaTemplate.send("operation_3rd1", obj.toJSONString());
}
}
}
@ResponseBody
@RequestMapping("insertData")
public void insertData(HttpServletRequest request) throws IOException {
String idStr = request.getParameter("id");
Long id = null;
if (StringUtils.isNotEmpty(idStr)) {
id = Long.parseLong(idStr);
}
String jsonData = request.getParameter("json");
String name = request.getParameter("name");
// 将读取的数据转换为JSONObject
JSONObject jsonObject = JSONObject.parseObject(jsonData);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String date = df.format(new Date());
Picture picture;
if (jsonObject != null) {
// 取出所有控件读取属性
if (StringUtils.isEmpty(idStr)) {
picture = new Picture();
picture.setJson(jsonData);
picture.setName(name);
picture.setTime(date);
pictureService.add(picture);
} else {
picture = pictureService.get(id);
picture.setJson(jsonData);
picture.setName(name);
picture.setTime(date);
pictureService.update(picture);
}
}
}
@RequestMapping("showPicture")
public Picture showPicture(Long id) {
return pictureService.get(id);
}
@RequestMapping("/handlePicture")
public String handlePicture(String jsonStr) {
String picData="";
JSONObject pictureData = new JSONObject();
pictureData.put("version", "2.0");
JSONArray datas = new JSONArray();
JSONObject jsonData = JSON.parseObject(jsonStr);
String key = "";
for(String key1 : jsonData.keySet()) {
key = key1;
break;
}
JSONArray btnArray = jsonData.get