lidongdong
2022-09-23 edf2bc6f41c9784e9cdccc9b569a7091a5a5a438
flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
New file
@@ -0,0 +1,322 @@
package com.dg.core.controller;
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.service.IGuideEvolveService;
import com.dg.core.service.IGuideRepairOrderService;
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.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
/**
 * 工单管理
 */
@Api(tags = {"工单管理接口"})
@RestController
@RequestMapping("/guideRepairOrder")
public class GuideRepairOrderController extends BaseController {
    @Resource
    private IGuideRepairOrderService iGuideRepairOrderService;
    @Autowired
    private IGuideEvolveService iGuideEvolveService;
    /**
     * 提交导办订单
     * @return
     */
    @ApiOperation(value = "提交导办订单",response = GuideRepairOrder.class)
    @PostMapping("/addOrder")
    @Authorization
    public ResultData addOrder(@RequestBody GuideRepairOrder guideRepairOrder,@CurrentUser SysUser sysUser) {
          guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString());
          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
          return toAjax(iGuideRepairOrderService.addOrder(guideRepairOrder));
    }
    /**
     * 获取详情
     * @param Id
     * @param orderNum
     * @return
     */
    @ApiOperation("获取订单详情")
    @GetMapping("/orderdata")
    @Authorization
    public ResultData selectConfigData(@RequestParam(value = "Id",required = false) String Id,
                                       @RequestParam(value = "orderNum",required = false)  String orderNum)
    {
        if(StringUtils.isEmpty(Id) && StringUtils.isEmpty(orderNum))
        {
            return ResultData.error("id或者订单号不能都为空");
        }
        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(Id,orderNum);
        order.setGuideEvolveEntities(iGuideEvolveService.selectConfigList(Id));
        return ResultData.success(order);
    }
    /**
     * 分配人员
     * @param order
     * @return
     */
    @ApiOperation("分配人员")
    @PostMapping("/allocation")
    @Authorization
    public ResultData allocation(@RequestBody GuideRepairOrder order, @CurrentUser SysUser sysUser)
    {
        if(order==null)
        {
            return ResultData.error("参数不能为空");
        }
        if(StringUtils.isEmpty(order.getGuideDepartmentId()))
        {
            return ResultData.error("导办部门id不能为空");
        }
        if(StringUtils.isEmpty(order.getGuideUserId()))
        {
            return ResultData.error("导办人员id不能为空");
        }
        if(StringUtils.isEmpty(order.getGuideUserPhone()))
        {
            return ResultData.error("导办人员电话不能为空");
        }
        //已分配
        order.setState("2");
        //新增分配记录
        GuideEvolveEntity entity=new GuideEvolveEntity();
        entity.setCreateTime(LocalDateTime.now());
        entity.setUpdateTime(LocalDateTime.now());
        entity.setState("13");
        entity.setDepartmentalId(sysUser.getDepartmentId());
        entity.setToUserId(sysUser.getUserId()+"");
        entity.setFromUserId(order.getGuideUserId());
        entity.setFromDepartmentalId(order.getGuideDepartmentId());
        iGuideEvolveService.insertConfig(entity);
        return toAjax(iGuideRepairOrderService.updateConfig(order));
    }
    /**
     * 转派人员
     * @param order
     * @return
     */
    @ApiOperation("转派人员")
    @PostMapping("/redeploy")
    @Authorization
    public ResultData redeploy(@RequestBody GuideRepairOrder order, @CurrentUser SysUser sysUser)
    {
        if(order==null)
        {
            return ResultData.error("参数不能为空");
        }
        if(StringUtils.isEmpty(order.getGuideDepartmentId()))
        {
            return ResultData.error("导办部门id不能为空");
        }
        if(StringUtils.isEmpty(order.getGuideUserId()))
        {
            return ResultData.error("导办人员id不能为空");
        }
        if(StringUtils.isEmpty(order.getGuideUserPhone()))
        {
            return ResultData.error("导办人员电话不能为空");
        }
        //已分配
        order.setState("2");
        //新增转派记录
        GuideEvolveEntity entity=new GuideEvolveEntity();
        entity.setCreateTime(LocalDateTime.now());
        entity.setUpdateTime(LocalDateTime.now());
        entity.setState("12");
        entity.setDepartmentalId(sysUser.getDepartmentId());
        entity.setToUserId(sysUser.getUserId()+"");
        entity.setFromUserId(order.getGuideUserId());
        entity.setFromDepartmentalId(order.getGuideDepartmentId());
        iGuideEvolveService.insertConfig(entity);
        return toAjax(iGuideRepairOrderService.updateConfig(order));
    }
    /**
     * 去处理
     * @param entity
     * @return
     */
    @ApiOperation("去处理")
    @PostMapping("/dispose")
    @Authorization
    public ResultData dispose(@RequestBody GuideEvolveEntity entity, @CurrentUser SysUser sysUser)
    {
        if(entity==null)
        {
            return ResultData.error("参数不能为空");
        }
        if(StringUtils.isEmpty(entity.getGuideId()))
        {
            return ResultData.error("工单id不能为空");
        }
        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(entity.getGuideId(),"");
        if(order==null)
        {
            return ResultData.error("该工单不存在!");
        }
        if(StringUtils.equals(order.getState(),"3"))
        {
            return ResultData.error("该工单已办结!");
        }
        if(!StringUtils.equals(order.getState(),"2"))
        {
            return ResultData.error("该工单非是待办状态!");
        }
        //待评价
        order.setState("4");
        //新增已办结记录
        entity.setCreateTime(LocalDateTime.now());
        entity.setUpdateTime(LocalDateTime.now());
        entity.setState("4");
        entity.setFromDepartmentalId(sysUser.getDepartmentId());
        entity.setFromUserId(sysUser.getUserId()+"");
        iGuideEvolveService.insertConfig(entity);
        return toAjax(iGuideRepairOrderService.updateConfig(order));
    }
    /**
     * 取消导办工单
     * @param entity
     * @return
     */
    @ApiOperation("取消导办工单")
    @PostMapping("/cancel")
    @Authorization
    public ResultData cancel(@RequestBody GuideEvolveEntity entity, @CurrentUser SysUser sysUser)
    {
        if(entity==null)
        {
            return ResultData.error("参数不能为空");
        }
        if(StringUtils.isEmpty(entity.getGuideId()))
        {
            return ResultData.error("工单id不能为空");
        }
        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(entity.getGuideId(),"");
        if(order==null)
        {
            return ResultData.error("该工单不存在!");
        }
        if(!StringUtils.equals(order.getState(),"1"))
        {
            return ResultData.error("该工单不能取消!");
        }
        //取消状态
        order.setState("5");
        //新增已取消记录
        entity.setCreateTime(LocalDateTime.now());
        entity.setUpdateTime(LocalDateTime.now());
        entity.setState("5");
        entity.setFromDepartmentalId(sysUser.getDepartmentId());
        entity.setFromUserId(sysUser.getUserId()+"");
        iGuideEvolveService.insertConfig(entity);
        return toAjax(iGuideRepairOrderService.updateConfig(order));
    }
    /**
     * 工单评价
     * @param entity
     * @return
     */
    @ApiOperation("工单评价")
    @PostMapping("/evaluate")
    @Authorization
    public ResultData evaluate(@RequestBody GuideRepairOrder entity, @CurrentUser SysUser sysUser)
    {
        if(entity==null)
        {
            return ResultData.error("参数不能为空");
        }
        if(entity.getId()<=0)
        {
            return ResultData.error("工单id不能为空");
        }
        if(!StringUtils.equals(entity.getState(),"4"))
        {
            return ResultData.error("该工单不能评价!");
        }
        if(StringUtils.isEmpty(entity.getEvaluateState()))
        {
            return ResultData.error("满意程度不能为空!");
        }
        //已办结
        entity.setState("3");
        //新增已办结记录
        GuideEvolveEntity guideEvolveEntity=new GuideEvolveEntity();
        guideEvolveEntity.setCreateTime(LocalDateTime.now());
        guideEvolveEntity.setUpdateTime(LocalDateTime.now());
        guideEvolveEntity.setState("3");
        guideEvolveEntity.setFromDepartmentalId(sysUser.getDepartmentId());
        guideEvolveEntity.setFromUserId(sysUser.getUserId()+"");
        iGuideEvolveService.insertConfig(guideEvolveEntity);
        return toAjax(iGuideRepairOrderService.updateConfig(entity));
    }
    /**
     * 获取个人中心工单数据
     * @param sysUser 当前登录人员信息
     * @return
     */
    @ApiOperation("获取个人中心工单数据")
    @GetMapping("/personalCenter")
    @Authorization
    public ResultData selectBySubmitId(@CurrentUser SysUser sysUser){
        return ResultData.success(iGuideRepairOrderService.selectBySubmitId(sysUser.getUserId().toString()));
    }
}