package cn.huge.module.grid.service;
|
|
import cn.huge.base.common.bo.R;
|
import cn.huge.base.common.utils.*;
|
import cn.huge.module.grid.dao.mapper.GridCaseTaskMapper;
|
import cn.huge.module.grid.domain.po.GridCaseTask;
|
import cn.huge.module.grid.domain.vo.HeadVo;
|
import cn.huge.module.sys.vo.*;
|
import cn.huge.module.grid.domain.vo.*;
|
import com.alibaba.druid.support.logging.Log;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
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.*;
|
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;
|
@Value("${grid.secret:BZb2hLCx05}")
|
private String secret;
|
@Value("${grid.passid:b08c0ec0-772d-caf8-5c9b-1f7d86295a95}")
|
private String passid;
|
private String testUrl = "http://183.2.142.21:9007";
|
@Autowired
|
private GridCaseTaskService gridCaseTaskService;
|
@Autowired
|
private GridUserService gridUserService;
|
@Autowired
|
private GridCaseTaskMapper gridCaseTaskMapper;
|
|
public R<GridToDoVo> createToDo(GridToDoVo gridToDoVo) {
|
HashMap<String,String> headVo = initHeadVo();
|
log.info("xsd:{}", JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty));
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/save");
|
String s = null;
|
try {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/save", JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty), headVo, "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) {
|
HashMap<String,String> headVo = initHeadVo();
|
String s = null;
|
try {
|
if (SpringContextUtil.checkDev()) {
|
log.info("xsd:{}", JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty));
|
log.info("xsd:{}", testUrl + "/api/thrid/grid/todo/batch-create-todo" + JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty));
|
s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/todo/batch-create-todo", JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty), headVo, "utf-8");
|
} else {
|
log.info("xsd:{}", JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty));
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/saveBatch" + JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty));
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/saveBatch", JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty), headVo, "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) {
|
HashMap<String,String> headVo = initHeadVo();
|
String s = null;
|
log.info("xsd:{}", JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty));
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/update");
|
try {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/update", JSON.toJSONString(gridToDoVo, SerializerFeature.WriteNullStringAsEmpty),headVo, "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) {
|
HashMap<String,String> headVo = initHeadVo();
|
String s = null;
|
log.info("xsd:{}", JSON.toJSONString(gridToDoVos, SerializerFeature.WriteNullStringAsEmpty));
|
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(gridToDoVos, SerializerFeature.WriteNullStringAsEmpty),headVo, "utf-8");
|
} else {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/updateBatch", JSON.toJSONString(gridToDoVos, SerializerFeature.WriteNullStringAsEmpty),headVo, "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) {
|
HashMap<String,String> headVo = initHeadVo();
|
String s = null;
|
try {
|
if (SpringContextUtil.checkDev()) {
|
log.info("xsd:{}", gridIdsVo);
|
log.info("xsd:{}", testUrl + "/api/thrid/grid/todo/delete-todo" + JSON.toJSONString(gridIdsVo, SerializerFeature.WriteNullStringAsEmpty));
|
s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/todo/delete-todo", JSON.toJSONString(gridIdsVo, SerializerFeature.WriteNullStringAsEmpty),headVo, "utf-8");
|
} else {
|
log.info("xsd:{}", gridUrl + "/sysUserTodo/batchDel" + JSON.toJSONString(gridIdsVo, SerializerFeature.WriteNullStringAsEmpty));
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/batchDel", JSON.toJSONString(gridIdsVo, SerializerFeature.WriteNullStringAsEmpty),headVo, "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 HashMap<String,String> initHeadVo() {
|
long timestamp = System.currentTimeMillis()/1000;
|
HashMap<String,String> headVo = new HashMap<>();
|
headVo.put("x-rio-paasid",passid);
|
headVo.put("x-rio-timestamp",timestamp+"");
|
headVo.put("x-rio-nonce","mt");
|
headVo.put("x-rio-signature", DigestUtils.sha256Hex(timestamp+secret+"mt"+timestamp));
|
return headVo;
|
}
|
|
public R<List<GridToDoVo>> getToDo(GridGetToDoVo gridGetToDoVo) {
|
HashMap<String,String> headVo = initHeadVo();
|
gridGetToDoVo.setCurrent(1);
|
gridGetToDoVo.setSize(10);
|
log.info("xsd:{}", testUrl + "/api/thrid/grid/todo/get-todo" + JSON.toJSONString(gridGetToDoVo, SerializerFeature.WriteNullStringAsEmpty));
|
String s = null;
|
try {
|
if (SpringContextUtil.checkDev()) {
|
s = HttpClientUtils.httpPostRaw(testUrl + "/api/thrid/grid/todo/get-todo", JSON.toJSONString(gridGetToDoVo, SerializerFeature.WriteNullStringAsEmpty),headVo, "utf-8");
|
} else {
|
s = HttpClientUtils.httpPostRaw(gridUrl + "/sysUserTodo/page", JSON.toJSONString(gridGetToDoVo, SerializerFeature.WriteNullStringAsEmpty),headVo, "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 = JSONObject.parseObject(s).getJSONArray("data");
|
List<GridToDoVo> gridToDoVos = data.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.getObjId(), 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);
|
gridCaseTask.setCaseId(gridToDoVo.getObjId());
|
gridCaseTask.setCaseTaskId(gridToDoVo.getCaseTaskId());
|
gridCaseTaskListNew.add(gridCaseTask);
|
}
|
gridCaseTaskService.updateBatchById(gridCaseTaskListNew);
|
return resultData;
|
}
|
|
public R<List<GridToDoVo>> createTaskToDo(GridToDoBacthVo gridToDoBacthVo, String unitId) {
|
Date now = DateUtils.getNowDate();
|
//查询网格组织编号
|
String gridUnitId = gridCaseTaskMapper.getGridUnitIdByUnitId(unitId);
|
log.info("caseId:" + gridToDoBacthVo.getObjId() + "查询到网格组织编号为:" + gridUnitId);
|
if(org.apache.commons.lang3.StringUtils.isNotBlank(gridUnitId)){
|
//查询组织下用户
|
GridOrgUsersVo gridOrgUsersVo = new GridOrgUsersVo();
|
gridOrgUsersVo.setCurrOrgId(gridUnitId);
|
List<GridUserVo> gridUserVoList = gridUserService.getUserListByOrg(gridOrgUsersVo).getData();
|
log.info("caseId:" + gridToDoBacthVo.getObjId() + "查询到网格编号为:"+gridUnitId+ "下的用户有:"+ gridUserVoList.stream().map(GridUserVo:: getId).collect(Collectors.joining(",")));
|
if(CollectionUtils.isNotEmpty(gridUserVoList)){
|
//创建待办工单
|
List<String> userIdList = gridUserVoList.stream().map(GridUserVo::getId).collect(Collectors.toList());
|
gridToDoBacthVo.setUserIdList(userIdList);
|
R<List<GridToDoVo>> resultData = this.batchCreateToDo(gridToDoBacthVo);
|
log.info("caseId:" + gridToDoBacthVo.getObjId() + "批量添加网格任务成功");
|
//保存待办工单
|
List<GridToDoVo> GridToDoVoResult = resultData.getData();
|
if(CollectionUtils.isNotEmpty(GridToDoVoResult)) {
|
List<GridCaseTask> gridCaseTaskListNew = new ArrayList<>();
|
for (GridToDoVo gridToDoVoResult : GridToDoVoResult) {
|
GridCaseTask gridCaseTask = new GridCaseTask();
|
BeanUtils.copyProperties(gridToDoVoResult, gridCaseTask);
|
gridCaseTask.setCaseId(gridToDoBacthVo.getObjId());
|
gridCaseTask.setCaseTaskId(gridToDoBacthVo.getCaseTaskId());
|
gridCaseTask.setCreateTime(now);
|
gridCaseTask.setUpdateTime(now);
|
gridCaseTaskListNew.add(gridCaseTask);
|
}
|
BeanUtils.copyProperties(GridToDoVoResult, gridCaseTaskListNew);
|
gridCaseTaskService.saveBatch(gridCaseTaskListNew);
|
log.info("caseId:" + gridToDoBacthVo.getObjId() + "成功在本系统添加网格待办信息");
|
}
|
return resultData;
|
}
|
}
|
return R.ok();
|
}
|
|
public R<String> deleteTaskToDo(GridTaskVo gridTaskVo) {
|
try {
|
List<GridCaseTask> gridCaseTaskList = gridCaseTaskService.listGridCaseTask(gridTaskVo.getCaseId(), gridTaskVo.getCaseTaskId());
|
List<String> idList = gridCaseTaskList.stream().map(GridCaseTask::getId).collect(Collectors.toList());
|
String ids = gridCaseTaskList.stream().map(GridCaseTask::getId).collect(Collectors.joining(","));
|
log.info("caseId:" + gridTaskVo.getCaseId() + "查询到本系统保存的编号" + ids);
|
|
GridIdsVo gridIdsVo = new GridIdsVo();
|
gridIdsVo.setIds(idList);
|
R<String> result = this.deleteToDo(gridIdsVo);
|
log.info("caseId:" + gridTaskVo.getCaseId() + "成功删除网格系统的待办任务,编号为:" + ids);
|
gridCaseTaskService.removeByIds(idList);
|
log.info("caseId:" + gridTaskVo.getCaseId() + "成功删除本系统保存的网格任务,编号为:" + ids);
|
return result;
|
}catch (Exception e){
|
log.info("xsderror:{}", e);
|
throw new RuntimeException(e);
|
}
|
|
}
|
}
|