lidongdong
2022-10-11 48cf19e7043d7019404d3155f20689df6639bf5b
flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
@@ -1,21 +1,26 @@
package com.dg.core.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dg.core.ResultData;
import com.dg.core.annotation.Authorization;
import com.dg.core.annotation.CurrentUser;
import com.dg.core.db.gen.entity.GuideEvolveEntity;
import com.dg.core.db.gen.entity.GuideRepairOrder;
import com.dg.core.db.gen.entity.SysUser;
import com.dg.core.db.gen.entity.*;
import com.dg.core.service.IGuideEvolveService;
import com.dg.core.service.IGuideRepairOrderService;
import com.dg.core.service.IOrganizationChartService;
import com.dg.core.util.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
/**
 * 工单管理
@@ -31,6 +36,9 @@
    @Autowired
    private IGuideEvolveService iGuideEvolveService;
    @Autowired
    IOrganizationChartService iOrganizationChartService;
    /**
     * 提交导办订单
     * @return
@@ -41,7 +49,14 @@
    public ResultData addOrder(@RequestBody GuideRepairOrder guideRepairOrder,@CurrentUser SysUser sysUser) {
          guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString());
          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
          return toAjax(iGuideRepairOrderService.addOrder(guideRepairOrder));
          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
          int i = iGuideRepairOrderService.addOrder(guideRepairOrder);
          if (i>0){
              iGuideEvolveService.updateGuid();
            return ResultData.success();
          }
          else
            return  ResultData.error();
    }
@@ -94,10 +109,7 @@
            return ResultData.error("导办人员id不能为空");
        }
        if(StringUtils.isEmpty(order.getGuideUserPhone()))
        {
            return ResultData.error("导办人员电话不能为空");
        }
        //已分配
        order.setState("2");
@@ -111,6 +123,7 @@
        entity.setToUserId(sysUser.getUserId()+"");
        entity.setFromUserId(order.getGuideUserId());
        entity.setFromDepartmentalId(order.getGuideDepartmentId());
        entity.setGuideId(order.getId().toString());
        iGuideEvolveService.insertConfig(entity);
@@ -143,11 +156,6 @@
            return ResultData.error("导办人员id不能为空");
        }
        if(StringUtils.isEmpty(order.getGuideUserPhone()))
        {
            return ResultData.error("导办人员电话不能为空");
        }
        //已分配
        order.setState("2");
@@ -160,6 +168,7 @@
        entity.setToUserId(sysUser.getUserId()+"");
        entity.setFromUserId(order.getGuideUserId());
        entity.setFromDepartmentalId(order.getGuideDepartmentId());
        entity.setGuideId(order.getId().toString());
        iGuideEvolveService.insertConfig(entity);
@@ -198,19 +207,21 @@
        {
            return ResultData.error("该工单已办结!");
        }
        if(!StringUtils.equals(order.getState(),"2"))
        {
            return ResultData.error("该工单非是待办状态!");
        if(StringUtils.equals(entity.getState(),"2")){//如果用户选择未解决则状态改为待办
            order.setState("2");
            entity.setState("8");
        }
        //待评价
        order.setState("4");
        else if(StringUtils.equals(entity.getState(),"4")){
            //待评价
            order.setState("4");
            entity.setState("9");
        }
        //新增已办结记录
        entity.setCreateTime(LocalDateTime.now());
        entity.setUpdateTime(LocalDateTime.now());
        entity.setState("4");
        entity.setFromDepartmentalId(sysUser.getDepartmentId());
        entity.setFromUserId(sysUser.getUserId()+"");
        entity.setGuideId(order.getId().toString());
        iGuideEvolveService.insertConfig(entity);
        return toAjax(iGuideRepairOrderService.updateConfig(order));
    }
@@ -255,6 +266,7 @@
        entity.setState("5");
        entity.setFromDepartmentalId(sysUser.getDepartmentId());
        entity.setFromUserId(sysUser.getUserId()+"");
        entity.setGuideId(order.getId().toString());
        iGuideEvolveService.insertConfig(entity);
        return toAjax(iGuideRepairOrderService.updateConfig(order));
    }
@@ -299,11 +311,77 @@
        guideEvolveEntity.setState("3");
        guideEvolveEntity.setFromDepartmentalId(sysUser.getDepartmentId());
        guideEvolveEntity.setFromUserId(sysUser.getUserId()+"");
        iGuideEvolveService.insertConfig(guideEvolveEntity);
        return toAjax(iGuideRepairOrderService.updateConfig(entity));
        guideEvolveEntity.setGuideId(entity.getId().toString());
        int i = iGuideRepairOrderService.updateConfig(entity);
        if (i>0)
            return toAjax( iGuideEvolveService.insertConfig(guideEvolveEntity));
        else
            return ResultData.error();
    }
    /**
     * 获取个人中心工单数据
     * @param sysUser 当前登录人员信息
     * @return
     */
    @ApiOperation(value = "获取个人中心工单数据",response = GuideRepairOrder.class)
    @GetMapping("/personalCenter")
    @Authorization
    public ResultData selectBySubmitId(@CurrentUser SysUser sysUser){
        return ResultData.success(iGuideRepairOrderService.selectBySubmitId(sysUser.getUserId().toString()));
    }
    /**
     * 获取工单列表(分页)
     * @param matterName
     * @return
     */
    @ApiOperation(value = "获取工单列表(分页)",response = GuideRepairOrder.class)
    @GetMapping("/getList")
    @Authorization
    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
                                   @RequestParam(value = "pageSize",required = false) Integer pageSize,
                                   @RequestParam(value = "matterName",required = false) String matterName,
                                          @CurrentUser SysUser sysUser)
    {
        Assert.notNull(pageNum, "pageNum 不能为空");
        Assert.notNull(pageSize, "pageSize 不能为空");
        Page<GuideRepairOrder> pageParam = new Page<>(pageNum,pageSize);
        List<String> ids=iOrganizationChartService.getIds(sysUser.getDepartmentId());
        List<GuideRepairOrder> list = iGuideRepairOrderService.selectConfigList(pageParam,pageSize,matterName,ids);
        int num=iGuideRepairOrderService.countConfigList(matterName,ids);
        return getDataTable(list,num);
    }
    @ApiOperation("导办工单统计不同状态工单数")
    @GetMapping("/getWorkOrder")
    @Authorization
    public ResultData getWorkOrder(@CurrentUser SysUser sysUser)
    {
        WorkOrder workOrder=new WorkOrder();
        List<String> ids=iOrganizationChartService.getIds(sysUser.getDepartmentId());
        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消  8未解决  9已解决)
        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null));
        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",ids,null,null,null,null));
        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,null,null,null));
        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",ids,null,null,null,null));
        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",ids,null,null,null,null));
        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",ids,null,null,null,null));
        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum("6",ids,null,null,null,null));
        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum("7",ids,null,null,null,null));
        //是否超时 (1 未超时   2已超时) 超时未办结
        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,ids,null,"2",null,null));
        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,"2",null,null));
        return ResultData.success(workOrder);
    }
}