| | |
| | | package org.jeecg.modules.eam.controller; |
| | | |
| | | import java.util.Arrays; |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.fastjson.parser.Feature; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.common.constant.CommonConstant; |
| | | import org.jeecg.common.system.query.QueryGenerator; |
| | | import org.jeecg.common.aspect.annotation.AutoLog; |
| | | import org.jeecg.common.system.vo.LoginUser; |
| | | import org.jeecg.common.util.TranslateDictTextUtils; |
| | | import org.jeecg.modules.eam.constant.BusinessCodeConst; |
| | | import org.jeecg.modules.eam.constant.ReportRepairEnum; |
| | | import org.jeecg.modules.eam.entity.EamRepairOrder; |
| | | import org.jeecg.modules.eam.entity.EamReportRepair; |
| | | import org.jeecg.modules.eam.request.EamRepairOrderQuery; |
| | | import org.jeecg.modules.eam.request.EamRepairOrderRequest; |
| | | import org.jeecg.modules.eam.request.EamRepairOrderResponse; |
| | | import org.jeecg.modules.eam.request.EamReportRepairQuery; |
| | | import org.jeecg.modules.eam.service.IEamRepairOrderService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.jeecg.common.system.base.controller.JeecgController; |
| | | import org.jeecg.modules.eam.service.IEamReportRepairService; |
| | | import org.jeecg.modules.mdc.util.DateUtils; |
| | | import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.jeecg.modules.system.entity.SysUser; |
| | | import org.jeecg.modules.system.service.ISysUserService; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | import io.swagger.annotations.Api; |
| | |
| | | private IEamRepairOrderService eamRepairOrderService; |
| | | |
| | | @Resource |
| | | private ISysBusinessCodeRuleService businessCodeRuleService; |
| | | private ObjectMapper objectMapper; |
| | | |
| | | @Resource |
| | | private IEamReportRepairService eamReportRepairService; |
| | | private TranslateDictTextUtils translateDictTextUtils; |
| | | |
| | | @Resource |
| | | private ISysUserService sysUserService; |
| | | |
| | | /** |
| | | * 分页列表查询 |
| | | * |
| | | * @param eamRepairOrder |
| | | * @param eamRepairOrderQuery |
| | | * @param pageNo |
| | | * @param pageSize |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "维修工单-分页列表查询") |
| | | @ApiOperation(value = "维修工单-分页列表查询", notes = "维修工单-分页列表查询") |
| | | @GetMapping(value = "/list") |
| | | public Result<?> queryPageList(EamRepairOrder eamRepairOrder, |
| | | public Result<?> queryPageList(EamRepairOrderQuery eamRepairOrderQuery, |
| | | @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, |
| | | @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { |
| | | Page<EamRepairOrder> page = new Page<EamRepairOrder>(pageNo, pageSize); |
| | | IPage<EamRepairOrder> pageList = eamRepairOrderService.pageList(page, eamRepairOrder); |
| | | IPage<EamRepairOrder> pageList = eamRepairOrderService.pageList(page, eamRepairOrderQuery); |
| | | return Result.OK(pageList); |
| | | } |
| | | |
| | |
| | | if (StringUtils.isBlank(eamRepairOrder.getReportId())) { |
| | | return Result.error("领取失败,请选择维修记录!"); |
| | | } |
| | | String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE); |
| | | eamRepairOrder.setRepairCode(codeSeq); |
| | | EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId()); |
| | | eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0); |
| | | eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name()); |
| | | eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name()); |
| | | eamRepairOrder.setActualStartTime(DateUtils.getNow()); |
| | | // 校验领取权限 |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | eamRepairOrder.setRepairer(user.getRealname()); |
| | | eamReportRepairService.updateById(eamReportRepair); |
| | | eamRepairOrderService.save(eamRepairOrder); |
| | | // TODO 启动流程 |
| | | |
| | | if (!BusinessCodeConst.PCR0002.equals(user.getPost())) { |
| | | return Result.error("领取失败,没有领取权限!"); |
| | | } |
| | | eamRepairOrderService.saveRepairOrder(eamRepairOrder); |
| | | return Result.OK("添加成功!"); |
| | | } |
| | | |
| | | /** |
| | | * 编辑 |
| | | * 指派 |
| | | * |
| | | * @param eamRepairOrder |
| | | * @param |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "维修工单-编辑") |
| | | @ApiOperation(value = "维修工单-编辑", notes = "维修工单-编辑") |
| | | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) |
| | | public Result<?> edit(@RequestBody EamRepairOrder eamRepairOrder) { |
| | | eamRepairOrderService.updateById(eamRepairOrder); |
| | | return Result.OK("编辑成功!"); |
| | | @AutoLog(value = "故障报修-指派") |
| | | @ApiOperation(value = "故障报修-指派", notes = "故障报修-指派") |
| | | @GetMapping(value = "/assign") |
| | | public Result<?> assign(@RequestBody EamReportRepairQuery eamReportRepairQuery) { |
| | | if (StringUtils.isBlank(eamReportRepairQuery.getRepairer())) { |
| | | return Result.error("指派失败,请选择维修工!"); |
| | | } |
| | | // 校验指派权限 |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | if (!BusinessCodeConst.PCR0004.equals(user.getPost())) { |
| | | return Result.error("指派失败,没有指派权限!"); |
| | | } |
| | | // 校验维修工权限 |
| | | SysUser sysUser = sysUserService.getUserByName(eamReportRepairQuery.getRepairer()); |
| | | if (sysUser == null) { |
| | | return Result.error("指派失败,未找到此维修工用户!"); |
| | | } |
| | | if (!BusinessCodeConst.PCR0002.equals(sysUser.getPost())) { |
| | | return Result.error("指派失败,此用户不是维修工!"); |
| | | } |
| | | eamRepairOrderService.assign(eamReportRepairQuery); |
| | | |
| | | return Result.OK("指派成功!"); |
| | | } |
| | | |
| | | /** |
| | | * 通过id删除 |
| | | * 我的待办 执行/审批 |
| | | * |
| | | * @param id |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "维修工单-通过id删除") |
| | | @ApiOperation(value = "维修工单-通过id删除", notes = "维修工单-通过id删除") |
| | | @DeleteMapping(value = "/delete") |
| | | public Result<?> delete(@RequestParam(name = "id", required = true) String id) { |
| | | eamRepairOrderService.removeById(id); |
| | | return Result.OK("删除成功!"); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "维修工单-批量删除") |
| | | @ApiOperation(value = "维修工单-批量删除", notes = "维修工单-批量删除") |
| | | @DeleteMapping(value = "/deleteBatch") |
| | | public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { |
| | | this.eamRepairOrderService.removeByIds(Arrays.asList(ids.split(","))); |
| | | return Result.OK("批量删除成功!"); |
| | | @AutoLog(value = "维修工单-执行/审批") |
| | | @ApiOperation(value = "维修工单-执行/审批", notes = "维修工单-执行/审批") |
| | | @PostMapping(value = "/perform") |
| | | public Result<?> perform(@RequestBody EamRepairOrderRequest request) { |
| | | if (request == null) { |
| | | return Result.error("审批的对象不能为空!"); |
| | | } |
| | | // 检查请求参数 |
| | | if (StrUtil.isBlank(request.getTaskId()) || StrUtil.isBlank(request.getDataId()) || StrUtil.isBlank(request.getInstanceId())) { |
| | | return Result.error("审批任务错误或不存在!"); |
| | | } |
| | | EamRepairOrder b = eamRepairOrderService.perform(request); |
| | | if(b == null) { |
| | | return Result.error("操作失败!"); |
| | | } |
| | | return Result.OK("操作成功!"); |
| | | } |
| | | |
| | | /** |
| | |
| | | @ApiOperation(value = "维修工单-通过id查询", notes = "维修工单-通过id查询") |
| | | @GetMapping(value = "/queryById") |
| | | public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { |
| | | EamRepairOrder eamRepairOrder = eamRepairOrderService.getById(id); |
| | | return Result.OK(eamRepairOrder); |
| | | EamRepairOrderResponse eamRepairOrder = eamRepairOrderService.findById(id); |
| | | if (eamRepairOrder == null) { |
| | | return Result.error("未找到对应数据!"); |
| | | } |
| | | try { |
| | | String json = objectMapper.writeValueAsString(eamRepairOrder); |
| | | JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); |
| | | translateDictTextUtils.translateField("createBy", eamRepairOrder.getCreateBy(), item, "sys_user,realname,username"); |
| | | translateDictTextUtils.translateField("breakdownFlag", eamRepairOrder.getBreakdownFlag(), item, "breakdown_flag"); |
| | | translateDictTextUtils.translateField("faultType", eamRepairOrder.getFaultType(), item, "fault_reason_category"); |
| | | translateDictTextUtils.translateField("reportStatus", eamRepairOrder.getReportStatus(), item, "report_repair_status"); |
| | | translateDictTextUtils.translateField("equipmentId", eamRepairOrder.getEquipmentId(), item, "eam_equipment,id,equipment_code"); |
| | | translateDictTextUtils.translateField("repairStatus", eamRepairOrder.getRepairStatus(), item, "report_repair_status"); |
| | | translateDictTextUtils.translateField("repairer", eamRepairOrder.getRepairer(), item, "sys_user,username,realname"); |
| | | return Result.OK(item); |
| | | } catch (Exception e) { |
| | | return Result.error("数据转译失败!"); |
| | | } |
| | | } |
| | | |
| | | /** |