TaskController.java 8.37 KB
package vion.controller;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import vion.Global;
import vion.enums.ResultEnum;
import vion.model.*;
import vion.service.IFaultLogSerrvice;
import vion.service.IFileSerrvice;
import vion.service.ITaskSerrvice;
import vion.service.ITaskTempSerrvice;
import vion.utils.ResultUtil;
import vion.vo.FaultLogVO;
import vion.vo.TaskVO;

import java.util.Date;
import java.util.List;

@RestController
@RequestMapping(Global.BASE_URL)
@Slf4j
public class TaskController {

    @Autowired
    private ITaskTempSerrvice taskTempSerrvice;
    @Autowired
    private ITaskSerrvice taskSerrvice;
    @Autowired
    private IFileSerrvice fileSerrvice;
    @Autowired
    private IFaultLogSerrvice faultLogSerrvice;

    @GetMapping("/tasks")
    @ResponseBody
    public Object getStoreList(@RequestParam(name = "account_id")Integer account_id,
                               @RequestParam(name = "store_id")Integer store_id,
                               @RequestParam(name = "fault_type",required=false)Integer fault_type,
                               @RequestParam(name = "status",required=false)Integer status,
                               @RequestParam(name = "startdate",required=false) Date startdate,
                               @RequestParam(name = "enddate",required=false) Date enddate,
                               @RequestParam(name = "pageNum")Integer pageNum,
                               @RequestParam(name = "pageSize")Integer pageSize){

        //pageNum当前页,pageSize每页条数
        PageHelper.startPage(pageNum,pageSize);

        QueryWrapper<Task> wrapper=new QueryWrapper<>();
        wrapper.eq("store_id",store_id);
        wrapper.eq("account_id",account_id);
        if(fault_type!=null)
            wrapper.eq("fault_type",fault_type);
        if(status!=null)
            wrapper.eq("status",status);
        if(startdate!=null)
            wrapper.ge("repair_date",startdate);
        if(enddate!=null)
            wrapper.le("repair_date",enddate);

        List<Task> taskList=taskSerrvice.list(wrapper);
        PageInfo pageInfo=new PageInfo(taskList,10);

        if (pageInfo != null) {
            return ResultUtil.success(pageInfo);
        } else {
            return ResultUtil.error(ResultEnum.SELECT_ERROR);
        }
    }

    @GetMapping("/task")
    @ResponseBody
    public Object getWorkByID(@RequestParam(name = "task_id")Integer task_id){

        Task task=taskSerrvice.getById(task_id);

        if (task != null) {
            return ResultUtil.success(task);
        } else {
            return ResultUtil.error(ResultEnum.SELECT_ERROR);
        }
    }

    @PostMapping("/tasks")
    @ResponseBody
    public Object saveOrUpdate(@RequestBody TaskVO data) {

        try {
            Task task=new Task();
            task.setAccountId(data.getAccount_id());
            task.setStoreId(data.getStore_id());
            task.setFaultType(data.getFault_type());
            task.setFaultDescription(data.getFault_description());
            task.setRepairDate(data.getRepair_date());
            task.setRepairPeople(data.getRepair_people());
            task.setRepairPhone(data.getRepair_phone());
            task.setStatus(data.getStatus());
            task.setCreateUser(data.getCreate_user());

            if(data.getWorktemp_id()!=null){
                //得到预处理工单
               // TaskTemp taskTemp= taskTempDao.getTaskTempByID(data.getWorktemp_id());
                TaskTemp taskTemp= taskTempSerrvice.getById(data.getWorktemp_id());
                //更新预处理工单状态
                taskTemp.setStatus(2);//状态(1待确认、2已确认)
                taskTemp.setModifyTime(new Date());
                taskTemp.setOperator(data.getCurrentuser());
                taskTemp.setStoreId(data.getStore_id());
                taskTemp.setModifyTime(new Date());
                //taskTempDao.updateTaskTemp(taskTemp);
                taskTempSerrvice.saveOrUpdate(taskTemp);

                //根据预处理工单更新附件的门店ID
                fileSerrvice.lambdaUpdate()
                        .setSql("store_id="+data.getStore_id())
                        .eq(File::getSourceId,data.getId())
                        .update();
                //fileDao.updateFileStoreid(fileTemp);

            }
            if(data.getId()==null){
                //添加新工单
               // Task work= taskDao.addTask(task);
                Task work=taskSerrvice.saveAndReturn(task);

                //添加新工单的附件信息
                if(work!=null && data.getFilename()!=null){
                    File file=new File();
                    file.setStoreId(work.getStoreId());
                    file.setSourceId(work.getId());
                    file.setSourceType(3);//1项目、2工单预处理,3工单操作,4巡检
                    file.setName(data.getFilename());
                    file.setUrl(data.getFileurl());
                    file.setType(1);
                    fileSerrvice.save(file);
                }
            }
            else{
                task.setId(data.getId());
                task.setSolveDate(data.getSolve_date());
                task.setFaultReason(data.getFault_reason());
                task.setSolveType(data.getSolve_type());
                task.setSolveDescription(data.getSolve_description());
                task.setCurrentuser(data.getCurrentuser());
                task.setRemark(data.getRemark());
               // taskDao.updateTask(task);
                taskSerrvice.saveOrUpdate(task);

                if(data.getFilename()!=null){
                    //添加文件附件
                    File file=new File();
                    file.setStoreId(data.getStore_id());
                    file.setSourceId(data.getId());
                    file.setSourceType(3);//1项目、2工单预处理,3工单操作,4巡检
                    file.setName(data.getFilename());
                    file.setUrl(data.getFileurl());
                    file.setType(1);
                    fileSerrvice.save(file);
                }

            }

            return ResultUtil.success();
        }catch (Exception e) {
            return ResultUtil.error(ResultEnum.SELECT_ERROR);
        }
    }

    @GetMapping("/faultLogs")
    @ResponseBody
    public Object getFaultLogByID(@RequestParam(name = "store_id")Integer store_id,
                                  @RequestParam(name = "task_id")Integer task_id){

        //FaultLog faultLog=taskDao.getFaultlogByStoreID(store_id,task_id);
        List<FaultLog> faultLogs=faultLogSerrvice.list(Wrappers.<FaultLog>lambdaQuery()
                .eq(FaultLog::getStoreId,store_id)
                .eq(FaultLog::getTaskId,task_id));

        if (faultLogs != null) {
            return ResultUtil.success(faultLogs);
        } else {
            return ResultUtil.error(ResultEnum.SELECT_ERROR);
        }
    }

    @PostMapping("/faultLogs")
    @ResponseBody
    public Object saveAddFaultLog(@RequestBody FaultLogVO data) {

        try {
            FaultLog faultLog=new FaultLog();
            faultLog.setTaskId(data.getTask_id());
            faultLog.setStoreId(data.getStore_id());
            faultLog.setOperator(data.getOperator());
            faultLog.setContent(data.getContent());
            faultLog.setRemark(data.getRemark());
           // taskDao.addFaultLog(faultLog);
            faultLogSerrvice.saveOrUpdate(faultLog);

            if(data.getFilename()!=null){
                //添加文件附件
                File file=new File();
                file.setStoreId(data.getStore_id());
                file.setSourceId(data.getTask_id());
                file.setSourceType(3);//1项目、2工单预处理,3工单操作,4巡检
                file.setName(data.getFilename());
                file.setUrl(data.getFileurl());
                file.setType(1);
                //fileDao.addFile(file);
                fileSerrvice.save(file);
            }
            return ResultUtil.success();
        }catch (Exception e) {
            return ResultUtil.error(ResultEnum.SELECT_ERROR);
        }
    }

}