package com.casic.accessControl.rs; import com.casic.accessControl.marker.domain.Marker; import com.casic.accessControl.marker.manager.MarkerManager; import com.casic.accessControl.task.domain.Task; import com.casic.accessControl.task.domain.TaskDetail; import com.casic.accessControl.task.dto.MarkerDto; import com.casic.accessControl.task.dto.TaskDto; import com.casic.accessControl.task.manager.TaskDetailManager; import com.casic.accessControl.task.manager.TaskManager; import com.casic.accessControl.user.domain.Company; import com.casic.accessControl.user.domain.Role; import com.casic.accessControl.user.domain.User; import com.casic.accessControl.user.manager.RoleManager; import com.casic.accessControl.user.manager.UserManager; import com.casic.accessControl.util.StringUtils; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import javax.annotation.Resource; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import java.text.SimpleDateFormat; import java.util.*; /** * Created by admin on 2015/1/15. */ @Component @Path("task") public class TaskResource { private static Logger logger = LoggerFactory.getLogger(TaskResource.class); @Resource private UserManager userManager; @Resource private RoleManager roleManager; @Resource private TaskManager taskManager; @Resource private TaskDetailManager taskDetailManager; @Resource private MarkerManager markerManager; @GET @Path("get") @Produces(MediaType.APPLICATION_JSON) public Map get(@QueryParam("userName") String userName) { Map map = new HashMap<String, Object>(); try { Role role = roleManager.getRoleByType(5); User user = userManager.getPatrolerByName(userName, role); if (user == null) { map.put("success", "false"); map.put("message", "人员不存在!"); return map; } List<Task> tasks = taskManager.getTasksByPatroler(user); List<TaskInfo> taskInfos = TaskInfo.Converts(tasks); if (taskInfos != null) { map.put("success", "true"); map.put("message", taskInfos); } } catch (Exception e) { map.put("success", "false"); map.put("message", e.getMessage()); } return map; } @GET @Path("post") @Produces(MediaType.APPLICATION_JSON) public Map post(@QueryParam("taskId") String taskId) { Map map = new HashMap<String, Object>(); try { Task task = taskManager.get(Long.parseLong(taskId)); if (task != null) { task.setStatus(2); task.setEndDate(new Date()); taskManager.save(task); map.put("success", "true"); map.put("message", ""); } } catch (Exception e) { map.put("success", "false"); map.put("message", e.getMessage()); } return map; } /** * app端新建任务接口 * * @param patrollerId * @param description * @return */ @GET @Path("addAppTask") @Produces(MediaType.APPLICATION_JSON) public Map addAppTask(@QueryParam("patrollerId") String patrollerId, @QueryParam("description") String description) { Map map = new HashMap<String, Object>(); try { Task task = new Task(); User patroler = userManager.get(Long.parseLong(patrollerId)); task.setCreator(patroler); task.setPatroler(patroler); task.setDeployDate(new Date()); task.setCompany(patroler.getCompany()); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String taskCode = sdf.format(new Date()); task.setTaskCode(taskCode); task.setDescription(description); task.setStatus(1); task.setIsValid(1); task.setBeginDate(new Date()); taskManager.save(task); map.put("success", "true"); map.put("taskId", task.getId()); } catch (Exception e) { map.put("success", "false"); map.put("message", e.getMessage()); } return map; } /** * app端上传marker信息 * * @return */ @Path("uploadAppMarker") @Produces(MediaType.APPLICATION_JSON) public Map addAppMaskerTask(@QueryParam("taskId") String taskId, @QueryParam("ids") String ids) { Map map = new HashMap<String, Object>(); try { Task task = taskManager.getTaskById(taskId); List<TaskDetail> taskDetails = new ArrayList<TaskDetail>(); List<Marker> markerList = new ArrayList<>(); if (ids.length() > 0) { markerList = markerManager.getMarkerByMarkerIds(ids); for (Marker m : markerList) { TaskDetail taskDetail = new TaskDetail(); taskDetail.setMarkerId(m.getId()); taskDetail.setMarkerIdReal(m.getMarkerId()); taskDetail.setLatitude(m.getLatitude()); taskDetail.setLongitude(m.getLongitude()); taskDetail.setTask(task); taskDetail.setIsNormal(1); taskDetail.setIsChecked(1); taskDetail.setFinishTime(new Date()); taskDetails.add(taskDetail); } for (int i = 0; i < taskDetails.size(); i++) { taskDetailManager.save(taskDetails.get(i)); } } task.setEndDate(new Date()); task.setStatus(2); taskManager.save(task); } catch (Exception e) { map.put("success", "false"); map.put("message", e.getMessage()); } map.put("success", "true"); return map; } @GET @Path("update") @Produces(MediaType.APPLICATION_JSON) public Map updateTask(@QueryParam("taskId") String taskId, @QueryParam("state") String state) { Map map = new HashMap<String, Object>(); try { Task task = taskManager.get(Long.parseLong(taskId)); if (task != null) { task.setStatus(Integer.parseInt(state)); if (state.trim().equals("1")) { task.setBeginDate(new Date()); } else if (state.trim().equals("2")) { task.setEndDate(new Date()); } taskManager.save(task); map.put("success", "true"); map.put("message", ""); } } catch (Exception e) { map.put("success", "false"); map.put("message", e.getMessage()); } return map; } @GET @Path("update-task-mark") @Produces(MediaType.APPLICATION_JSON) public Map updateTaskDetail(@QueryParam("taskDetailId") String taskDetailId) { Map map = new HashMap<String, Object>(); try { TaskDetail taskDetail = taskDetailManager.get(Long.parseLong(taskDetailId)); if (taskDetail != null) { taskDetail.setIsChecked(1); taskDetail.setFinishTime(new Date()); taskDetailManager.save(taskDetail); // Task task = taskDetail.getTask(); // //判断如果该taskid没有了未巡检的,则将task表对应的赋值为2,否则赋值为1 // List<TaskDetail> taskDetails = taskDetailManager.getUncheckedByTask(task); // if(CollectionUtils.isEmpty(taskDetails)){ // task.setStatus(2); // task.setEndDate(new Date()); // }else{ // task.setStatus(1); // } // taskManager.save(task); map.put("success", "true"); map.put("message", ""); } } catch (Exception e) { map.put("success", "false"); map.put("message", e.getMessage()); } return map; } }