package cn.huge.module.grid.service;
|
|
import cn.huge.base.common.bo.R;
|
import cn.huge.base.common.utils.HttpClientUtils;
|
import cn.huge.base.common.utils.ObjectUtils;
|
import cn.huge.base.common.utils.SpringContextUtil;
|
import cn.huge.module.grid.domain.po.GridCaseTask;
|
import cn.huge.module.sys.vo.*;
|
import cn.huge.module.grid.domain.vo.*;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.UUID;
|
import java.util.stream.Collectors;
|
|
@Slf4j
|
@Service
|
public class GridToDoService {
|
@Value("${grid.url:http://219.137.166.84:8061}")
|
private String gridUrl;
|
@Value("${grid.username:mtxt0011}")
|
private String userName;
|
@Value("${grid.password}")
|
private String passWord;
|
private String testUrl = "http://183.2.142.21:9007";
|
@Autowired
|
private GridCaseTaskService gridCaseTaskService;
|
@Autowired
|
private GridUserService gridUserService;
|
|
public R<GridToDoVo> createToDo(GridToDoVo gridToDoVo) {
|
HeadVo headVo = initHeadVo();
|
GridToDoRequestVo requestVo = new GridToDoRequestVo();
|
requestVo.setHeadVo(headVo);
|
requestVo.setBodyVo(gridToDoVo);
|
log.info("xsd:{}", JSON.toJSONString(requestVo));
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/save");
|
String s = null;
|
try {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/save", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
} catch (Exception e) {
|
log.info("xsderror:{}", e);
|
throw new RuntimeException(e);
|
}
|
log.info("xsd:{}", s);
|
GridToDoVo gridToDoDto = JSONObject.parseObject(s).getObject("data", GridToDoVo.class);
|
if (ObjectUtils.isNotEmpty(gridToDoDto)) {
|
GridCaseTask gridCaseTask = new GridCaseTask();
|
BeanUtils.copyProperties(gridToDoDto, gridCaseTask);
|
gridCaseTaskService.save(gridCaseTask);
|
}
|
return R.ok(gridToDoDto);
|
}
|
|
public R<List<GridToDoVo>> batchCreateToDo(GridToDoBacthVo gridToDoVo) {
|
HeadVo headVo = initHeadVo();
|
GridToDoBatchRequestVo requestVo = new GridToDoBatchRequestVo();
|
requestVo.setHeadVo(headVo);
|
requestVo.setBodyVo(gridToDoVo);
|
log.info("xsd:{}", JSON.toJSONString(requestVo));
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/saveBatch");
|
String s = null;
|
try {
|
if (SpringContextUtil.checkDev()) {
|
log.info("xsdurl:{}", testUrl + "/api/thrid/grid/todo/batch-create-todo");
|
s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/todo/batch-create-todo", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
} else {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/saveBatch", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
}
|
} catch (Exception e) {
|
log.info("xsderror:{}", e);
|
throw new RuntimeException(e);
|
}
|
log.info("xsd:{}", s);
|
JSONObject object = JSONObject.parseObject(s);
|
if (object.getInteger("code") != null && object.getInteger("code") == 0) {
|
JSONArray data = object.getJSONArray("data");
|
List<GridToDoVo> gridToDoVos = data.toJavaList(GridToDoVo.class);
|
return R.ok(gridToDoVos);
|
} else {
|
return R.fail("获取失败");
|
}
|
}
|
|
|
public R<GridToDoVo> updateToDo(GridToDoVo gridToDoVo) {
|
HeadVo headVo = initHeadVo();
|
GridToDoRequestVo requestVo = new GridToDoRequestVo();
|
requestVo.setHeadVo(headVo);
|
requestVo.setBodyVo(gridToDoVo);
|
String s = null;
|
log.info("xsd:{}", JSON.toJSONString(requestVo));
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/update");
|
try {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/update", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
} catch (Exception e) {
|
log.info("xsderror:{}", e);
|
throw new RuntimeException(e);
|
}
|
log.info("xsd:{}", s);
|
JSONObject object = JSONObject.parseObject(s);
|
if (object.getInteger("code") != null && object.getInteger("code") == 0) {
|
gridToDoVo = object.getObject("data", GridToDoVo.class);
|
return R.ok(gridToDoVo, "创建待办成功");
|
} else {
|
return R.fail("创建待办失败");
|
}
|
}
|
|
public R<List<GridToDoVo>> batchUpdateToDo(List<GridToDoVo> gridToDoVos) {
|
HeadVo headVo = initHeadVo();
|
GridToDoBatchUpdateRequestVo requestVo = new GridToDoBatchUpdateRequestVo();
|
requestVo.setHeadVo(headVo);
|
requestVo.setBodyVo(gridToDoVos);
|
String s = null;
|
log.info("xsd:{}", JSON.toJSONString(requestVo));
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/updateBatch");
|
try {
|
if (SpringContextUtil.checkDev()) {
|
log.info("xsdurl:{}", testUrl + "/api/thrid/grid/todo/batch-update-todo");
|
s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/todo/batch-update-todo", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
} else {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/updateBatch", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
}
|
} catch (Exception e) {
|
log.info("xsderror:{}", e);
|
throw new RuntimeException(e);
|
}
|
log.info("xsd:{}", s);
|
JSONObject object = JSONObject.parseObject(s);
|
if (object.getInteger("code") != null && object.getInteger("code") == 0) {
|
JSONArray data = object.getJSONArray("data");
|
List<GridToDoVo> list = data.toJavaList(GridToDoVo.class);
|
return R.ok(list);
|
} else {
|
return R.fail("获取失败");
|
}
|
}
|
|
public R<String> deleteToDo(GridIdsVo gridIdsVo) {
|
HeadVo headVo = initHeadVo();
|
GridToDoDeleteRequestVo requestVo = new GridToDoDeleteRequestVo();
|
requestVo.setHeadVo(headVo);
|
requestVo.setBodyVo(gridIdsVo);
|
log.info("xsd:{}", requestVo);
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/batchDel");
|
String s = null;
|
try {
|
if (SpringContextUtil.checkDev()) {
|
log.info("xsdurl:{}", testUrl + "/api/thrid/grid/todo/delete-todo");
|
s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/todo/delete-todo", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
} else {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/batchDel", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
}
|
} catch (Exception e) {
|
log.info("xsderror:{}", e);
|
throw new RuntimeException(e);
|
}
|
log.info("xsd:{}", s);
|
JSONObject object = JSONObject.parseObject(s);
|
if (object.getInteger("code") != null && object.getInteger("code") == 0) {
|
return R.ok("", "删除成功");
|
} else {
|
return R.fail(object.getString("data"), "删除失败");
|
}
|
|
}
|
|
public HeadVo initHeadVo() {
|
HeadVo headVo = new HeadVo();
|
headVo.setUsername(userName);
|
headVo.setPassword(passWord);
|
headVo.setRequestId(UUID.randomUUID().toString());
|
headVo.setSource("string");
|
return headVo;
|
}
|
|
public R<List<GridToDoVo>> getToDo(GridGetToDoVo gridGetToDoVo) {
|
HeadVo headVo = initHeadVo();
|
GridToDoGetRequestVo requestVo = new GridToDoGetRequestVo();
|
gridGetToDoVo.setCurrent(1);
|
gridGetToDoVo.setSize(10);
|
requestVo.setHeadVo(headVo);
|
requestVo.setBodyVo(gridGetToDoVo);
|
log.info("xsd:{}", JSON.toJSONString(requestVo));
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/page");
|
String s = null;
|
try {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/page", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
|
} catch (Exception e) {
|
log.info("xsderror:{}", e);
|
throw new RuntimeException(e);
|
}
|
log.info("xsd:{}", s);
|
JSONObject object = JSONObject.parseObject(s);
|
if (object.getInteger("code") != null && object.getInteger("code") == 0) {
|
JSONObject data = object.getJSONObject("data");
|
JSONArray records = data.getJSONArray("records");
|
List<GridToDoVo> gridToDoVos = records.toJavaList(GridToDoVo.class);
|
return R.ok(gridToDoVos);
|
} else {
|
return R.fail("获取失败");
|
}
|
|
}
|
|
public R<List<GridToDoVo>> updateTaskToDo(GridToDoVo gridToDoVo, String previousTaskId) {
|
//修改网格系统工单
|
List<GridToDoVo> gridToDoVoList = new ArrayList<>();
|
List<GridCaseTask> gridCaseTaskList = gridCaseTaskService.listGridCaseTask(gridToDoVo.getCaseId(), previousTaskId);
|
for (GridCaseTask gridCaseTask : gridCaseTaskList) {
|
gridToDoVo.setId(gridCaseTask.getId());
|
gridToDoVo.setMobile(gridCaseTask.getMobile());
|
gridToDoVoList.add(gridToDoVo);
|
}
|
R<List<GridToDoVo>> resultData = this.batchUpdateToDo(gridToDoVoList);
|
//修改保存的待办工单
|
List<GridToDoVo> GridToDoVoResult = resultData.getData();
|
List<GridCaseTask> gridCaseTaskListNew = new ArrayList<>();
|
for (GridToDoVo gridToDoVoResult : GridToDoVoResult) {
|
GridCaseTask gridCaseTask = new GridCaseTask();
|
BeanUtils.copyProperties(gridToDoVoResult, gridCaseTask);
|
gridCaseTaskListNew.add(gridCaseTask);
|
}
|
gridCaseTaskService.updateBatchById(gridCaseTaskListNew);
|
return resultData;
|
}
|
|
public R<List<GridToDoVo>> createTaskToDo(GridToDoBacthVo gridToDoBacthVo, String unitId) {
|
GridOrgUsersVo gridOrgUsersVo = new GridOrgUsersVo();
|
gridOrgUsersVo.setCurrOrgId(unitId);
|
List<GridUserVo> gridUserVoList = gridUserService.getUserListByOrg(gridOrgUsersVo).getData();
|
List<String> userIdList = gridUserVoList.stream().map(GridUserVo::getId).collect(Collectors.toList());
|
gridToDoBacthVo.setUserIdList(userIdList);
|
R<List<GridToDoVo>> resultData = this.batchCreateToDo(gridToDoBacthVo);
|
//保存待办工单
|
List<GridToDoVo> GridToDoVoResult = resultData.getData();
|
List<GridCaseTask> gridCaseTaskListNew = new ArrayList<>();
|
for (GridToDoVo gridToDoVoResult : GridToDoVoResult) {
|
GridCaseTask gridCaseTask = new GridCaseTask();
|
BeanUtils.copyProperties(gridToDoVoResult, gridCaseTask);
|
gridCaseTaskListNew.add(gridCaseTask);
|
}
|
BeanUtils.copyProperties(GridToDoVoResult, gridCaseTaskListNew);
|
gridCaseTaskService.saveBatch(gridCaseTaskListNew);
|
return resultData;
|
}
|
|
public R<String> deleteTaskToDo(GridTaskVo gridTaskVo) {
|
List<GridCaseTask> gridCaseTaskList = gridCaseTaskService.listGridCaseTask(gridTaskVo.getCaseId(), gridTaskVo.getCaseTaskId());
|
List<String> idList = gridCaseTaskList.stream().map(GridCaseTask::getId).collect(Collectors.toList());
|
GridIdsVo gridIdsVo = new GridIdsVo();
|
gridIdsVo.setIds(idList);
|
R<String> result = this.deleteToDo(gridIdsVo);
|
gridCaseTaskService.removeByIds(idList);
|
return result;
|
}
|
}
|