Newer
Older
EMS-WEB-3.0 / src / main / java / com / casic / accessControl / rs / TaskResource.java
package com.casic.accessControl.rs;

import com.casic.accessControl.task.domain.Task;
import com.casic.accessControl.task.domain.TaskDetail;
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 org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* 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;

    @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;
    }

    @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;
    }
}