Newer
Older
EMS-WEB-3.0 / src / main / java / com / casic / accessControl / rs / TaskResource.java
casic_zt on 23 Apr 2024 8 KB 现场问题修改提交
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;
    }
}