package org.jeecg.modules.eam.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.service.IMaintenanceOrderActualMaterialService; import org.jeecg.modules.eam.service.IMaintenanceOrderActualWorkingHourService; import org.jeecg.modules.eam.service.IPredictiveWorkOrderService; import org.jeecg.modules.eam.service.ISpecialtyMaintenanceOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; @RestController @RequestMapping("/eam/predictiveworkorder") @Slf4j public class PredictiveWorkOrderController extends JeecgController { @Autowired private IPredictiveWorkOrderService predictiveWorkOrderService; @Autowired private IMaintenanceOrderActualWorkingHourService maintenanceOrderActualWorkingHourService; @Autowired private IMaintenanceOrderActualMaterialService maintenanceOrderActualMaterialService; /** * 分页列表查询 * * @param specialtyMaintenanceOrder * @param pageNo * @param pageSize * @param req * @return */ //@AutoLog(value = "mom_eam_specialty_maintenance_order-分页列表查询") // @ApiOperation(value = "mom_eam_specialty_maintenance_order-分页列表查询", notes = "mom_eam_specialty_maintenance_order-分页列表查询") // @GetMapping(value = "/list") // public Result> queryPageList(SpecialtyMaintenanceOrder specialtyMaintenanceOrder, // @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, // @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, // HttpServletRequest req) { // QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(specialtyMaintenanceOrder, req.getParameterMap()); // Page page = new Page(pageNo, pageSize); // IPage pageList = specialtyMaintenanceOrderService.page(page, queryWrapper); // return Result.OK(pageList); // } /** * 获取专业保养工单 * 2023-4-25 qsw */ @GetMapping(value = "/pageOrderList") public Result pageOrderList(PredictiveWorkOrder predictiveWorkOrder, @RequestParam(name = "pageNo", defaultValue="1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { Page page = new Page(pageNo, pageSize); IPage specialtyMaintenanceOrderList = predictiveWorkOrderService.pageOrderList(page,predictiveWorkOrder); return Result.ok(specialtyMaintenanceOrderList); } // /** // * 添加 // * // * @param specialtyMaintenanceOrder // * @return // */ // @AutoLog(value = "mom_eam_specialty_maintenance_order-添加") // @ApiOperation(value = "mom_eam_specialty_maintenance_order-添加", notes = "mom_eam_specialty_maintenance_order-添加") // //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:add") // @PostMapping(value = "/add") // public Result add(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) { // boolean b = specialtyMaintenanceOrderService.add(specialtyMaintenanceOrder); // if (b) { // return Result.OK("添加成功!"); // } // return Result.error("添加失败!"); // } // // /** // * 编辑 // * // * @param specialtyMaintenanceOrder // * @return // */ // @AutoLog(value = "mom_eam_specialty_maintenance_order-编辑") // @ApiOperation(value = "mom_eam_specialty_maintenance_order-编辑", notes = "mom_eam_specialty_maintenance_order-编辑") // //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:edit") // @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) // public Result edit(@RequestBody SpecialtyMaintenanceOrder specialtyMaintenanceOrder) { // boolean b = specialtyMaintenanceOrderService.edit(specialtyMaintenanceOrder); // if (b) { // return Result.OK("编辑成功!"); // } // return Result.error("编辑失败!"); // } // // @RequestMapping(value = "/editStatus", method = {RequestMethod.PUT, RequestMethod.POST}) public Result editStatus(@RequestBody PredictiveWorkOrder predictiveWorkOrder) { predictiveWorkOrder.setActualStartTime(new Date()); boolean b = predictiveWorkOrderService.updateById(predictiveWorkOrder); if (b) { return Result.OK("操作成功!"); } else { return Result.error("操作失败!"); } } @RequestMapping(value = "/report", method = {RequestMethod.PUT, RequestMethod.POST}) @Transactional(rollbackFor = {Exception.class}) public Result report(@RequestBody PredictiveWorkOrder predictiveWorkOrder) { List actualMaterialList = maintenanceOrderActualMaterialService .list(new QueryWrapper() .eq("maintenance_order_id",predictiveWorkOrder.getId()) .eq("del_flag",0)); for(MaintenanceOrderActualMaterial maintenanceOrderActualMaterial:actualMaterialList){ if(maintenanceOrderActualMaterial.getIsLock().equals("no")){ throw new RuntimeException(" 【实际物料】尚未锁料,请先锁料"); } } List actualWorkingHours = maintenanceOrderActualWorkingHourService .list(new QueryWrapper() .eq("maintenance_order_id",predictiveWorkOrder.getId()) .eq("del_flag",0)); for(MaintenanceOrderActualWorkingHour actualWorkingHour:actualWorkingHours){ if(ObjectUtils.isNull(actualWorkingHour.getActualWorkingHourQuota())){ throw new RuntimeException("【实际工时】存在未填写的工时,请先填写"); } if(StringUtils.isBlank(actualWorkingHour.getUserId())){ throw new RuntimeException("【实际工时】存在未填写的人员,请先填写"); } } predictiveWorkOrder.setActualEndTime(new Date()); boolean b = predictiveWorkOrderService.updateById(predictiveWorkOrder); if (!b) { return Result.error("报工失败!"); } else { return Result.ok("报工成功!"); } } @RequestMapping(value = "/revocation", method = {RequestMethod.PUT, RequestMethod.POST}) public Result revocation(@RequestBody PredictiveWorkOrder predictiveWorkOrder) { String id = predictiveWorkOrder.getId(); PredictiveWorkOrder predictiveWorkOrder1 = predictiveWorkOrderService.getById(id); String status = predictiveWorkOrder1.getStatus(); if ("5".equals(status)) { predictiveWorkOrder1.setActualEndTime(null); boolean b = predictiveWorkOrderService.updateById(predictiveWorkOrder); if (b) { return Result.OK("撤销成功!"); } else { return Result.error("撤销失败!"); } } else { return Result.error("仅限已完工状态进行撤销操作!"); } } @RequestMapping(value = "/orderGet", method = {RequestMethod.PUT, RequestMethod.POST}) public Result orderGet(@RequestBody PredictiveWorkOrder predictiveWorkOrder) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = sysUser.getId(); predictiveWorkOrder.setRecipientUserId(userId); predictiveWorkOrder.setMaintenanceUserId(userId); predictiveWorkOrder.setStatus("3"); boolean b = predictiveWorkOrderService.updateById(predictiveWorkOrder); if (b) { return Result.OK("领取成功!"); } else { return Result.error("领取失败!"); } } // // /** // * 通过id删除 // * // * @param id // * @return // */ // @AutoLog(value = "mom_eam_specialty_maintenance_order-通过id删除") // @ApiOperation(value = "mom_eam_specialty_maintenance_order-通过id删除", notes = "mom_eam_specialty_maintenance_order-通过id删除") // //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:delete") // @DeleteMapping(value = "/delete") // public Result delete(@RequestParam(name = "id", required = true) String id) { // specialtyMaintenanceOrderService.removeById(id); // return Result.OK("删除成功!"); // } // // /** // * 批量删除 // * // * @param ids // * @return // */ // @AutoLog(value = "mom_eam_specialty_maintenance_order-批量删除") // @ApiOperation(value = "mom_eam_specialty_maintenance_order-批量删除", notes = "mom_eam_specialty_maintenance_order-批量删除") // //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:deleteBatch") // @DeleteMapping(value = "/deleteBatch") // public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { // this.specialtyMaintenanceOrderService.removeByIds(Arrays.asList(ids.split(","))); // return Result.OK("批量删除成功!"); // } // // /** // * 通过id查询 // * // * @param id // * @return // */ // //@AutoLog(value = "mom_eam_specialty_maintenance_order-通过id查询") // @ApiOperation(value = "mom_eam_specialty_maintenance_order-通过id查询", notes = "mom_eam_specialty_maintenance_order-通过id查询") // @GetMapping(value = "/queryById") // public Result queryById(@RequestParam(name = "id", required = true) String id) { // SpecialtyMaintenanceOrder specialtyMaintenanceOrder = specialtyMaintenanceOrderService.getById(id); // if (specialtyMaintenanceOrder == null) { // return Result.error("未找到对应数据"); // } // return Result.OK(specialtyMaintenanceOrder); // } // // /** // * 导出excel // * // * @param request // * @param specialtyMaintenanceOrder // */ // //@RequiresPermissions("org.jeecg.modules:mom_eam_specialty_maintenance_order:exportXls") // @RequestMapping(value = "/exportXls") // public ModelAndView exportXls(HttpServletRequest request, SpecialtyMaintenanceOrder specialtyMaintenanceOrder) { // return super.exportXls(request, specialtyMaintenanceOrder, SpecialtyMaintenanceOrder.class, "mom_eam_specialty_maintenance_order"); // } // // /** // * 通过excel导入数据 // * // * @param request // * @param response // * @return // */ // //@RequiresPermissions("mom_eam_specialty_maintenance_order:importExcel") // @RequestMapping(value = "/importExcel", method = RequestMethod.POST) // public Result importExcel(HttpServletRequest request, HttpServletResponse response) { // return super.importExcel(request, response, SpecialtyMaintenanceOrder.class); // } // @RequestMapping(value = "/assign", method = {RequestMethod.PUT, RequestMethod.POST}) public Result assign(@RequestBody PredictiveWorkOrder predictiveWorkOrder) { boolean b = predictiveWorkOrderService.assign(predictiveWorkOrder); if (b) { return Result.OK("改派成功!"); } else { return Result.error("改派失败!"); } } }