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.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; @Autowired private GridCaseTaskService gridCaseTaskService; @Autowired private GridUserService gridUserService; public R 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> 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 { 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 gridToDoVos = data.toJavaList(GridToDoVo.class); return R.ok(gridToDoVos); } else { return R.fail("获取失败"); } } public R 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> batchUpdateToDo(List 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 { 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 list = data.toJavaList(GridToDoVo.class); return R.ok(list); } else { return R.fail("获取失败"); } } public R 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 { 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> 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 gridToDoVos = records.toJavaList(GridToDoVo.class); return R.ok(gridToDoVos); } else { return R.fail("获取失败"); } } public R> updateTaskToDo(GridToDoVo gridToDoVo, String previousTaskId) { //修改网格系统工单 List gridToDoVoList = new ArrayList<>(); List gridCaseTaskList = gridCaseTaskService.listGridCaseTask(gridToDoVo.getCaseId(), previousTaskId); for(GridCaseTask gridCaseTask: gridCaseTaskList){ gridToDoVo.setId(gridCaseTask.getId()); gridToDoVo.setMobile(gridCaseTask.getMobile()); gridToDoVoList.add(gridToDoVo); } R> resultData = this.batchUpdateToDo(gridToDoVoList); //修改保存的待办工单 List GridToDoVoResult = resultData.getData(); List 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> createTaskToDo(GridToDoBacthVo gridToDoBacthVo, String unitId) { GridOrgUsersVo gridOrgUsersVo = new GridOrgUsersVo(); gridOrgUsersVo.setCurrOrgId(unitId); List gridUserVoList = gridUserService.getUserListByOrg(gridOrgUsersVo).getData(); List userIdList = gridUserVoList.stream().map(GridUserVo:: getId).collect(Collectors.toList()); gridToDoBacthVo.setUserIdList(userIdList); R> resultData = this.batchCreateToDo(gridToDoBacthVo); //保存待办工单 List GridToDoVoResult = resultData.getData(); List 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 deleteTaskToDo(GridTaskVo gridTaskVo) { List gridCaseTaskList = gridCaseTaskService.listGridCaseTask(gridTaskVo.getCaseId(), gridTaskVo.getCaseTaskId()); List idList = gridCaseTaskList.stream().map(GridCaseTask::getId).collect(Collectors.toList()); GridIdsVo gridIdsVo = new GridIdsVo(); gridIdsVo.setIds(idList); R result = this.deleteToDo(gridIdsVo); gridCaseTaskService.removeByIds(idList); return result; } }