package org.jeecg.modules.eam.controller; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import org.apache.ibatis.annotations.Param; import org.apache.poi.hssf.record.DVALRecord; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.system.base.entity.SysUpload; import org.jeecg.common.system.base.entity.SysUploadRela; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.model.DepartVo; import org.jeecg.modules.eam.model.InspectionCycleVo; import org.jeecg.modules.eam.model.MaintenanceCycleVo; import org.jeecg.modules.eam.service.*; 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.modules.eam.vo.SysFileNameVo; import org.jeecg.modules.system.entity.*; import org.jeecg.modules.system.service.*; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: mom_eam_daily_maintenance_order * @Author: jeecg-boot * @Date: 2023-05-11 * @Version: V1.0 */ @Api(tags = "mom_eam_daily_maintenance_order") @RestController @RequestMapping("/eam/dailyMaintenanceOrder") @Slf4j public class DailyMaintenanceOrderController extends JeecgController { @Autowired private IDailyMaintenanceOrderService dailyMaintenanceOrderService; // @Autowired // private IUploadRelaService uploadRelaService; // // @Autowired // private IUploadService uploadService; @Autowired private ISysBaseAPI sysBaseApi; @Autowired private IMaintenanceCycleService maintenanceCycleService; @Autowired private IDailyMaintenanceOrderDetailService dailyMaintenanceOrderDetailService; @Autowired private IMaintenanceOrderActualWorkingHourService maintenanceOrderActualWorkingHourService; @Autowired private IFinishTransferOrderService finishTransferOrderService; @Autowired private ISysUserService sysUserService; @Autowired private IPrecisionInspectionService precisionInspectionService; @Autowired private IEamEquipmentService equipmentService; @Autowired private IEquipmentPrecisionParametersService equipmentPrecisionParametersService; @Autowired private IPrecisionInspectionDetailService precisionInspectionDetailService; @Autowired private IMaintenanceStoveExemptService maintenanceStoveExemptService; @Autowired private ITechnologyStatusService technologyStatusService; @Autowired private ISysFileNameService sysFileNameService; @Resource private ISysRoleService sysRoleService; @Resource private ISysDictService sysDictService; @Resource private ISysDictItemService sysDictItemService; @Resource private ISysUserRoleService sysUserRoleService; /** * 分页列表查询 * * @param dailyMaintenanceOrder * @param pageNo * @param pageSize * @param req * @return */ //@AutoLog(value = "mom_eam_daily_maintenance_order-分页列表查询") @ApiOperation(value = "mom_eam_daily_maintenance_order-分页列表查询", notes = "mom_eam_daily_maintenance_order-分页列表查询") @GetMapping(value = "/list") public Result> queryPageList(DailyMaintenanceOrder dailyMaintenanceOrder, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dailyMaintenanceOrder, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = dailyMaintenanceOrderService.page(page, queryWrapper); return Result.OK(pageList); } /** * 二级保养工单 * qsw 2023-4-14 */ @GetMapping("getDailyMaintenanceOrderList") public Result getDailyMaintenanceOrderList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map params) { IPage> dailyMaintenanceOrderList = dailyMaintenanceOrderService.getDailyMaintenanceOrderList(pageNo, pageSize, params); List> records = dailyMaintenanceOrderList.getRecords(); for (Map record : records) { String id = (String) record.get("id"); String equipmentId = (String) record.get("equipmentId"); String maintenanceStandardId = (String) record.get("maintenanceStandardId"); List maintenanceCycles = dailyMaintenanceOrderService.getMaintenanceCycleByStandardId(maintenanceStandardId); record.put("maintenanceCycles", maintenanceCycles); List> dailyMaintenanceDetails = dailyMaintenanceOrderService.getDailyMaintenanceDetailByOrderId(id); record.put("dailyMaintenanceDetails", dailyMaintenanceDetails); List> operationUserDetails = dailyMaintenanceOrderService.getOperationUser(id); record.put("operationUserDetails", operationUserDetails); List> repairUserDetails = dailyMaintenanceOrderService.getRepairUser(id); record.put("repairUserDetails", repairUserDetails); //统计工时定额 // BigDecimal workingHourQuota = new BigDecimal(0); // for(Map dailyMaintenanceOrderDetail : dailyMaintenanceDetails){ // if(dailyMaintenanceOrderDetail.get("workingHourQuota") != null){ // Integer wh = (Integer)dailyMaintenanceOrderDetail.get("workingHourQuota"); // BigDecimal workingHour = new BigDecimal(wh); // workingHourQuota = workingHourQuota.add(workingHour); // } // } // record.put("workingHourQuota",workingHourQuota); /** * 复选框 不可编辑 */ /* String status = (String) record.get("status"); if ("5".equals(status)) { record.put("distable", false); } else { record.put("distable", true); }*/ /** * 统计实际工时 */ // QueryWrapper actualWorkingHourWrapper = new QueryWrapper<>(); // actualWorkingHourWrapper.eq("maintenance_order_id", id).eq("del_flag", 0); // actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity"); // Map map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper); // BigDecimal actualQuantity = new BigDecimal(0); // if (map != null) { // actualQuantity = (BigDecimal) map.get("actualQuantity"); // } // record.put("actualWorkingHourQuota", actualQuantity); List finishTransferOrders = finishTransferOrderService.lambdaQuery() .eq(FinishTransferOrder::getMaintenanceOrderId, id) .eq(FinishTransferOrder::getEquipmentId, equipmentId).list(); for (FinishTransferOrder finishTransferOrder : finishTransferOrders) { String operateUser = finishTransferOrder.getOperateUser(); // record.put("operateUserName", operateUser+"/"+finishTransferOrder.getTransferOrderUda1()); // record.put("operateUserName",(StringUtils.isBlank(operateUser) ? "":operateUser+"/"+finishTransferOrder.getTransferOrderUda1())); record.put("operateUserName",(StringUtils.isBlank(operateUser) ? "":operateUser)); String repairUser = finishTransferOrder.getRepairUser(); // record.put("repairUserName", repairUser+"/"+finishTransferOrder.getTransferOrderUda2()); // record.put("repairUserName",(StringUtils.isBlank(repairUser) ? "":repairUser+"/"+finishTransferOrder.getTransferOrderUda2())); record.put("repairUserName",(StringUtils.isBlank(repairUser) ? "":repairUser)); String repairDirectorUser = finishTransferOrder.getRepairDirectorUser(); // record.put("repairDirectorUserName", repairDirectorUser+"/"+finishTransferOrder.getTransferOrderUda3()); // record.put("repairDirectorUserName",(StringUtils.isBlank(repairDirectorUser) ? "":repairDirectorUser+"/"+finishTransferOrder.getTransferOrderUda3())); record.put("repairDirectorUserName",(StringUtils.isBlank(repairDirectorUser) ? "":repairDirectorUser)); String equipmentInspectorUser = finishTransferOrder.getEquipmentInspectorUser(); // record.put("equipmentInspectorUserName", equipmentInspectorUser+"/"+finishTransferOrder.getTransferOrderUda4()); // record.put("equipmentInspectorUserName",(StringUtils.isBlank(equipmentInspectorUser) ? "":equipmentInspectorUser+"/"+finishTransferOrder.getTransferOrderUda4())); record.put("equipmentInspectorUserName",(StringUtils.isBlank(equipmentInspectorUser) ? "":equipmentInspectorUser)); } } return Result.ok(dailyMaintenanceOrderList); } /** * 三级保养工单 * qsw 2023-4-14 */ @GetMapping("getDailyMaintenanceOrder3List") public Result getDailyMaintenanceOrder3List(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map params) { IPage> dailyMaintenanceOrderList = dailyMaintenanceOrderService.getDailyMaintenanceOrder3List(pageNo, pageSize, params); List> records = dailyMaintenanceOrderList.getRecords(); for (Map record : records) { String id = (String) record.get("id"); // String equipmentId = (String) record.get("equipmentId"); String maintenanceStandardId = (String) record.get("maintenanceStandardId"); List maintenanceCycles = dailyMaintenanceOrderService.getMaintenanceCycleByStandardId(maintenanceStandardId); record.put("maintenanceCycles", maintenanceCycles); List> dailyMaintenanceDetails = dailyMaintenanceOrderService.getDailyMaintenanceDetailByOrderId(id); //统计工时定额 // BigDecimal workingHourQuota = new BigDecimal(0); // for(Map dailyMaintenanceOrderDetail : dailyMaintenanceDetails){ // if(dailyMaintenanceOrderDetail.get("workingHourQuota") != null){ // Integer wh = (Integer)dailyMaintenanceOrderDetail.get("workingHourQuota"); // BigDecimal workingHour = new BigDecimal(wh); // workingHourQuota = workingHourQuota.add(workingHour); // } // } // record.put("workingHourQuota",workingHourQuota); record.put("dailyMaintenanceDetails", dailyMaintenanceDetails); /** * 复选框 不可编辑 */ /* String status = (String) record.get("status"); if ("5".equals(status)) { record.put("distable", false); } else { record.put("distable", true); }*/ /** * 统计实际工时 */ // QueryWrapper actualWorkingHourWrapper = new QueryWrapper<>(); // actualWorkingHourWrapper.eq("maintenance_order_id", id).eq("del_flag", 0); // actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity"); // Map map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper); // BigDecimal actualQuantity = new BigDecimal(0); // if (map != null) { // actualQuantity = (BigDecimal) map.get("actualQuantity"); // } // record.put("actualWorkingHourQuota", actualQuantity); /** *获取是否为炉类设备标记 */ String equipmentCategoryName = (String) record.get("equipmentCategoryName"); if("炉类设备".equals(equipmentCategoryName)){ record.put("isNotStoveCategoryFlag", true); }else{ record.put("isNotStoveCategoryFlag", false); } } return Result.ok(dailyMaintenanceOrderList); } /** * 添加 * * @param dailyMaintenanceOrder * @return */ @AutoLog(value = "mom_eam_daily_maintenance_order-添加") @ApiOperation(value = "mom_eam_daily_maintenance_order-添加", notes = "mom_eam_daily_maintenance_order-添加") @PostMapping(value = "/add") @Transactional(rollbackFor = {Exception.class}) public Result add(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { Date planStartTime = dailyMaintenanceOrder.getPlanStartTime(); String maintenanceCycleId = dailyMaintenanceOrder.getMaintenanceCycleId(); MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId); // String unit = maintenanceCycle.getUnit(); // int effectiveTime = maintenanceCycle.getEffectiveTime().intValue(); // Date date = null; // if ("min".equals(unit)) { // date = DateUtils.getMinAfter(planStartTime, effectiveTime); // } else if ("hour".equals(unit)) { // date = DateUtils.getHourAfter(planStartTime, effectiveTime); // } else if ("day".equals(unit)) { // date = DateUtils.getDayAfter(planStartTime, effectiveTime); // } // dailyMaintenanceOrder.setPlanEndTime(date);//创建类型(1手动创建,2自动创建) dailyMaintenanceOrder.setPlanEndTime(null);//创建类型(1手动创建,2自动创建) dailyMaintenanceOrder.setCreateType("1");//创建类型(1手动创建,2自动创建) dailyMaintenanceOrder.setConfirmStatus("0");//移交确认状态(0未确认,1主任确认,2检验员确认) dailyMaintenanceOrder.setPrecisionInspectionStatus("0");//精度检验单流程状态(0未确认,1精度检验者,2维修室主任,3设备检验员,4使用单位技术主管,5设备检验员(盖章)) dailyMaintenanceOrder.setStoveExemptStatus("0");//炉类设备豁免20项状态(0未确认,1维修室主任,2保养人员,3仪表工) dailyMaintenanceOrder.setStatus("3");//3:未开始 dailyMaintenanceOrderService.save(dailyMaintenanceOrder); List dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails(); for (DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail : dailyMaintenanceOrderDetails) { String id = dailyMaintenanceOrder.getId(); dailyMaintenanceOrderDetail.setId(""); dailyMaintenanceOrderDetail.setDailyMaintenanceOrderId(id); dailyMaintenanceOrderDetailService.save(dailyMaintenanceOrderDetail); } return Result.OK("添加成功!"); } /** * 编辑 * * @param dailyMaintenanceOrder * @return */ @AutoLog(value = "mom_eam_daily_maintenance_order-编辑") @ApiOperation(value = "mom_eam_daily_maintenance_order-编辑", notes = "mom_eam_daily_maintenance_order-编辑") //@RequiresPermissions("org.jeecg.modules:mom_eam_daily_maintenance_order:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result edit(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { /** * 获取数据库原始工单,对比原始工单中保养标准与周期是否发生变化 * 是:删除工单明细,重新维护 * 否:无需改变 */ String orderId = dailyMaintenanceOrder.getId(); DailyMaintenanceOrder order = dailyMaintenanceOrderService.getById(orderId); String oldMaintenanceStandardId = order.getMaintenanceStandardId(); String oldMaintenanceCycleId = order.getMaintenanceCycleId(); /** * 前段传出的新标准、新周期 */ String maintenanceStandardId = dailyMaintenanceOrder.getMaintenanceStandardId(); String maintenanceCycleId = dailyMaintenanceOrder.getMaintenanceCycleId(); Date planStartTime = dailyMaintenanceOrder.getPlanStartTime(); MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId); String unit = maintenanceCycle.getUnit(); int effectiveTime = maintenanceCycle.getEffectiveTime().intValue(); Date date = null; if ("min".equals(unit)) { date = DateUtils.getMinAfter(planStartTime, effectiveTime); } else if ("hour".equals(unit)) { date = DateUtils.getHourAfter(planStartTime, effectiveTime); } else if ("day".equals(unit)) { date = DateUtils.getDayAfter(planStartTime, effectiveTime); } dailyMaintenanceOrder.setPlanEndTime(date); dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); /** * 若果原标准原周期发生变化,删除原工单明细 重新维护 */ if (!oldMaintenanceStandardId.equals(maintenanceStandardId) || !oldMaintenanceCycleId.equals(maintenanceCycleId)) { List dailyMaintenanceOrderDetails = dailyMaintenanceOrderDetailService .lambdaQuery().eq(DailyMaintenanceOrderDetail::getDailyMaintenanceOrderId, orderId) .eq(DailyMaintenanceOrderDetail::getDelFlag, 0).list(); for (DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail : dailyMaintenanceOrderDetails) { dailyMaintenanceOrderDetailService.removeById(dailyMaintenanceOrderDetail); } } List dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails(); for (DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail : dailyMaintenanceOrderDetails) { String id = dailyMaintenanceOrder.getId(); dailyMaintenanceOrderDetail.setDailyMaintenanceOrderId(id); dailyMaintenanceOrderDetailService.saveOrUpdate(dailyMaintenanceOrderDetail); } return Result.OK("编辑成功!"); } /** * 通过id删除 * * @param id * @return */ @AutoLog(value = "mom_eam_daily_maintenance_order-通过id删除") @ApiOperation(value = "mom_eam_daily_maintenance_order-通过id删除", notes = "mom_eam_daily_maintenance_order-通过id删除") //@RequiresPermissions("org.jeecg.modules:mom_eam_daily_maintenance_order:delete") @DeleteMapping(value = "/delete") public Result delete(@RequestParam(name = "id", required = true) String id) { dailyMaintenanceOrderService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 * * @param ids * @return */ @AutoLog(value = "mom_eam_daily_maintenance_order-批量删除") @ApiOperation(value = "mom_eam_daily_maintenance_order-批量删除", notes = "mom_eam_daily_maintenance_order-批量删除") //@RequiresPermissions("org.jeecg.modules:mom_eam_daily_maintenance_order:deleteBatch") @DeleteMapping(value = "/deleteBatch") public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { this.dailyMaintenanceOrderService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 * * @param id * @return */ //@AutoLog(value = "mom_eam_daily_maintenance_order-通过id查询") @ApiOperation(value = "mom_eam_daily_maintenance_order-通过id查询", notes = "mom_eam_daily_maintenance_order-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { DailyMaintenanceOrder dailyMaintenanceOrder = dailyMaintenanceOrderService.getById(id); if (dailyMaintenanceOrder == null) { return Result.error("未找到对应数据"); } return Result.OK(dailyMaintenanceOrder); } /** * 导出excel * * @param request * @param dailyMaintenanceOrder */ //@RequiresPermissions("org.jeecg.modules:mom_eam_daily_maintenance_order:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, DailyMaintenanceOrder dailyMaintenanceOrder) { return super.exportXls(request, dailyMaintenanceOrder, DailyMaintenanceOrder.class, "mom_eam_daily_maintenance_order"); } /** * 通过excel导入数据 * * @param request * @param response * @return */ //@RequiresPermissions("mom_eam_daily_maintenance_order:importExcel") @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, DailyMaintenanceOrder.class); } /** * 获取保养周期 * qsw 2023-5-11 */ @GetMapping("getMaintenanceCycleByStandardId") public Result getMaintenanceCycleByStandardId(@Param("maintenanceStandardId") String maintenanceStandardId) { List maintenanceCycles = dailyMaintenanceOrderService.getMaintenanceCycleByStandardId(maintenanceStandardId); return Result.ok(maintenanceCycles); } /** * 根据保养标准,保养周期获取保养标准下对应的保养项目 (手动生成日常保养工单) * qsw 2023-4-13 */ @GetMapping("getMaintenanceProjectId") public Result getMaintenanceProjectId(@RequestParam(name = "maintenanceStandardId", required = true) String maintenanceStandardId, @RequestParam(name = "maintenanceCycleId", required = true) String maintenanceCycleId) { List> maps = dailyMaintenanceOrderService.getMaintenanceProjectId(maintenanceStandardId, maintenanceCycleId); // for (Map map : maps) { // //获取是否有无异常照片数据 //// List sysUploadRelas = uploadRelaService.lambdaQuery().eq(SysUploadRela::getBusId, (String) map.get("maintenanceStandardDetailId")).eq(SysUploadRela::getDelFlag, 0).list(); // List sysUploadRelas = sysBaseApi.listByBusIdAndBusType((String) map.get("maintenanceStandardDetailId"),null); // if (sysUploadRelas.size() > 0) { //// List uploadRelas = uploadRelaService.listByBusIdAndBusType((String) map.get("maintenanceStandardDetailId"), "daily_maintenance_standard_photo"); // List uploadRelas =sysBaseApi.listByBusIdAndBusType((String) map.get("maintenanceStandardDetailId"), "daily_maintenance_standard_photo"); // SysUpload upload = new SysUpload(); // if (CollectionUtils.isNotEmpty(uploadRelas)) { //// upload = uploadService.getById(uploadRelas.get(0).getUploadId()); // upload = sysBaseApi.getUploadById(uploadRelas.get(0).getUploadId()); // } // map.put("upload", upload); // } else { // SysUpload upload = new SysUpload(); // map.put("upload", upload); // } // } return Result.ok(maps); } @RequestMapping(value = "/editStatus", method = {RequestMethod.PUT, RequestMethod.POST}) public Result editStatus(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { if("4".equals(dailyMaintenanceOrder.getStatus())){ dailyMaintenanceOrder.setActualStartTime(new Date()); } boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); if (b) { return Result.OK("下发成功!"); } else { return Result.error("下发失败!"); } } @RequestMapping(value = "/orderGet", method = {RequestMethod.PUT, RequestMethod.POST}) public Result orderGet(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = sysUser.getId(); dailyMaintenanceOrder.setMaintenanceUserId(userId); dailyMaintenanceOrder.setStatus("3"); boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); if (b) { return Result.OK("领取成功!"); } else { return Result.error("领取失败!"); } } @RequestMapping(value = "/revocation", method = {RequestMethod.PUT, RequestMethod.POST}) public Result revocation(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { String id = dailyMaintenanceOrder.getId(); DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id); String status = maintenanceOrder.getStatus(); if ("5".equals(status)) { maintenanceOrder.setActualEndTime(null); boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); List finishTransferOrders = finishTransferOrderService.lambdaQuery() .eq(FinishTransferOrder::getMaintenanceOrderId, id) .eq(FinishTransferOrder::getDelFlag,0) .eq(FinishTransferOrder::getEquipmentId, maintenanceOrder.getEquipmentId()).list(); for (FinishTransferOrder finishTransferOrder : finishTransferOrders) { finishTransferOrderService.removeById(finishTransferOrder); } // /** // * 删除精度管理表 // */ // List precisionInspectionList = precisionInspectionService.lambdaQuery() // .eq(PrecisionInspection::getMaintenanceOrderId, id) // .eq(PrecisionInspection::getDelFlag,0) // .eq(PrecisionInspection::getEquipmentId, maintenanceOrder.getEquipmentId()).list(); // for (PrecisionInspection precisionInspection : precisionInspectionList) { // List precisionInspectionDetails = precisionInspectionDetailService.lambdaQuery() // .eq(PrecisionInspectionDetail::getPrecisionInspectionId, precisionInspection.getId()) // .eq(PrecisionInspectionDetail::getDelFlag,0) // .list(); // for (PrecisionInspectionDetail precisionInspectionDetail : precisionInspectionDetails) { // precisionInspectionDetailService.removeById(precisionInspectionDetail); // } // precisionInspectionService.removeById(precisionInspection); // } if (b) { return Result.OK("撤销成功!"); } else { return Result.error("撤销失败!"); } } else { return Result.error("仅限已完工状态撤销完成操作!"); } } @RequestMapping(value = "/revocation3M", method = {RequestMethod.PUT, RequestMethod.POST}) @Transactional(rollbackFor = { Exception.class }) public Result revocation3M(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { String id = dailyMaintenanceOrder.getId(); DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id); String status = maintenanceOrder.getStatus(); if ("5".equals(status)) { maintenanceOrder.setActualEndTime(null); boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); /** * 删除精度检验表 */ List precisionInspectionList = precisionInspectionService.lambdaQuery() .eq(PrecisionInspection::getMaintenanceOrderId, id) .eq(PrecisionInspection::getDelFlag,0) .eq(PrecisionInspection::getEquipmentId, maintenanceOrder.getEquipmentId()).list(); for (PrecisionInspection precisionInspection : precisionInspectionList) { List precisionInspectionDetails = precisionInspectionDetailService.lambdaQuery() .eq(PrecisionInspectionDetail::getPrecisionInspectionId, precisionInspection.getId()) .eq(PrecisionInspectionDetail::getDelFlag,0) .list(); for (PrecisionInspectionDetail precisionInspectionDetail : precisionInspectionDetails) { precisionInspectionDetailService.removeById(precisionInspectionDetail); } precisionInspectionService.removeById(precisionInspection); } /** * 删除炉类检测 */ List maintenanceStoveExempts = maintenanceStoveExemptService.lambdaQuery() .eq(MaintenanceStoveExempt::getMaintenanceOrderId, id) .eq(MaintenanceStoveExempt::getDelFlag, 0).list(); for (MaintenanceStoveExempt maintenanceStoveExempt : maintenanceStoveExempts) { maintenanceStoveExemptService.removeById(maintenanceStoveExempt); } /** * 删除精度检验单 */ List technologyStatusList = technologyStatusService.lambdaQuery() .eq(TechnologyStatus::getOrderId, id) .eq(TechnologyStatus::getDelFlag, 0).list(); for (TechnologyStatus technologyStatus : technologyStatusList) { technologyStatusService.removeById(technologyStatus); } if (b) { return Result.OK("撤销成功!"); } else { return Result.error("撤销失败!"); } } else { return Result.error("仅限已完工状态撤销完成操作!"); } } /** * 保养工单派工、改派 */ @RequestMapping(value = "/assign", method = {RequestMethod.PUT,RequestMethod.POST}) @Transactional(rollbackFor = { Exception.class }) public Result assign(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { dailyMaintenanceOrder.setStatus("3"); dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); return Result.OK("工单派工成功!"); } @RequestMapping(value = "/report", method = {RequestMethod.PUT, RequestMethod.POST}) public Result report(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = sysUser.getId(); // dailyMaintenanceOrder.setMaintenanceUserId(userId); dailyMaintenanceOrder.setActualEndTime(new Date()); boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); List dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails(); for (DailyMaintenanceOrderDetail maintenanceOrderDetail : dailyMaintenanceOrderDetails) { maintenanceOrderDetail.setMaintenanceOrderDetailUda1(dailyMaintenanceOrder.getMaintenanceUserId()); dailyMaintenanceOrderDetailService.updateById(maintenanceOrderDetail); } String id = dailyMaintenanceOrder.getId(); DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id); FinishTransferOrder finishTransferOrder = new FinishTransferOrder(); finishTransferOrder.setEquipmentId(maintenanceOrder.getEquipmentId()); finishTransferOrder.setMaintenanceOrderId(maintenanceOrder.getId()); finishTransferOrder.setStatus("1"); finishTransferOrder.setDelFlag(0); finishTransferOrderService.save(finishTransferOrder); String equipmentId = maintenanceOrder.getEquipmentId(); Equipment equipment = equipmentService.getById(equipmentId); equipment.setSecondMaintenanceTime(new Date()); equipmentService.updateById(equipment); if (!b) { return Result.error("报工失败!"); } else { return Result.ok("报工成功!"); } } @RequestMapping(value = "/report3M", method = {RequestMethod.PUT, RequestMethod.POST}) @Transactional(rollbackFor = { Exception.class }) public Result report3M(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = sysUser.getId(); // dailyMaintenanceOrder.setMaintenanceUserId(userId); dailyMaintenanceOrder.setActualEndTime(new Date()); boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); List dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails(); for (DailyMaintenanceOrderDetail maintenanceOrderDetail : dailyMaintenanceOrderDetails) { maintenanceOrderDetail.setMaintenanceOrderDetailUda1(dailyMaintenanceOrder.getMaintenanceUserId()); dailyMaintenanceOrderDetailService.updateById(maintenanceOrderDetail); } String id = dailyMaintenanceOrder.getId(); DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id); FinishTransferOrder finishTransferOrder = new FinishTransferOrder(); finishTransferOrder.setEquipmentId(maintenanceOrder.getEquipmentId()); finishTransferOrder.setMaintenanceOrderId(maintenanceOrder.getId()); finishTransferOrder.setOperateUser(userId); finishTransferOrder.setRepairUser(userId); finishTransferOrder.setStatus("1"); finishTransferOrder.setDelFlag(0); finishTransferOrderService.save(finishTransferOrder); String equipmentId = maintenanceOrder.getEquipmentId(); Equipment equipment = equipmentService.getById(equipmentId); String precisionParameters = equipment.getPrecisionParameters(); if(!"1".equals(precisionParameters)){ this.createTechnologyStatus(maintenanceOrder); } this.createPrecisionInspection(maintenanceOrder); this.createMaintenanceStoveExempt(maintenanceOrder); /** * 三保报工时 更新本次三保日期 和下次三保日期 */ String equipmentImportanceId = equipment.getEquipmentImportanceId(); equipment.setThirdMaintenanceTime(new Date()); if("A".equals(equipmentImportanceId)){ equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),3)); }else if("B".equals(equipmentImportanceId)){ equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4)); }else if("C".equals(equipmentImportanceId)){ equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4)); } equipmentService.updateById(equipment); if (!b) { return Result.error("报工失败!"); } else { return Result.ok("报工成功!"); } } void createPrecisionInspection(DailyMaintenanceOrder dailyMaintenanceOrder){ PrecisionInspection precisionInspection = new PrecisionInspection(); precisionInspection.setMaintenanceOrderId(dailyMaintenanceOrder.getId()); precisionInspection.setEquipmentId(dailyMaintenanceOrder.getEquipmentId()); precisionInspectionService.save(precisionInspection); List equipmentPrecisionParameters = equipmentPrecisionParametersService.lambdaQuery() .eq(EquipmentPrecisionParameters::getEquipmentId, dailyMaintenanceOrder.getEquipmentId()) .eq(EquipmentPrecisionParameters::getDelFlag, "0").list(); PrecisionInspectionDetail precisionInspectionDetail = null; for (EquipmentPrecisionParameters equipmentPrecisionParameter : equipmentPrecisionParameters) { precisionInspectionDetail = new PrecisionInspectionDetail(); precisionInspectionDetail.setPrecisionInspectionId(precisionInspection.getId()); precisionInspectionDetail.setEquipmentId(dailyMaintenanceOrder.getEquipmentId()); precisionInspectionDetail.setPrecisionParametersId(equipmentPrecisionParameter.getPrecisionParametersId()); String upperLimit = equipmentPrecisionParameter.getUpperLimit()+""; String lowerLimit = equipmentPrecisionParameter.getLowerLimit()+""; precisionInspectionDetail.setTolerance("["+upperLimit+"—"+lowerLimit+"]"); precisionInspectionDetailService.save(precisionInspectionDetail); } } void createMaintenanceStoveExempt(DailyMaintenanceOrder dailyMaintenanceOrder){ List sysFileName = sysFileNameService.getSysFileName("20"); MaintenanceStoveExempt maintenanceStoveExempt = new MaintenanceStoveExempt(); maintenanceStoveExempt.setMaintenanceOrderId(dailyMaintenanceOrder.getId()); maintenanceStoveExempt.setReceipts(sysFileName.get(0).getReceipts()); maintenanceStoveExemptService.save(maintenanceStoveExempt); } void createTechnologyStatus(DailyMaintenanceOrder dailyMaintenanceOrder){ List sysFileName = sysFileNameService.getSysFileName("9"); TechnologyStatus technologyStatus = new TechnologyStatus(); technologyStatus.setOrderId(dailyMaintenanceOrder.getId()); technologyStatus.setReceipts(sysFileName.get(0).getReceipts()); technologyStatusService.save(technologyStatus); } /** * 日常保养工单 获取设备台站已绑定的对象部门 * qsw 2023-7-11 */ @GetMapping("getSysDeparts") public Result getSysDeparts() { List sysDeparts = dailyMaintenanceOrderService.getSysDeparts(); return Result.ok(sysDeparts); } /** * 审批 */ @RequestMapping(value = "/approve", method = {RequestMethod.PUT, RequestMethod.POST}) @Transactional(rollbackFor = { Exception.class }) public Result approve(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String orderId = dailyMaintenanceOrder.getId(); String maintenanceOrderUda3 = dailyMaintenanceOrder.getMaintenanceOrderUda3(); String confirmStatus = dailyMaintenanceOrder.getConfirmStatus(); Date maintenanceDate = dailyMaintenanceOrder.getMaintenanceDate(); DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(orderId); String equipmentId = maintenanceOrder.getEquipmentId(); String orderUda3 = maintenanceOrder.getMaintenanceOrderUda3(); maintenanceOrder.setMaintenanceDate(maintenanceDate); if(StringUtils.isBlank(orderUda3)){ maintenanceOrder.setMaintenanceOrderUda3(maintenanceOrderUda3); } List finishTransferOrders = finishTransferOrderService.lambdaQuery() .eq(FinishTransferOrder::getMaintenanceOrderId, orderId) .eq(FinishTransferOrder::getEquipmentId, equipmentId).list(); if(finishTransferOrders.size()>0){ FinishTransferOrder finishTransferOrder = finishTransferOrders.get(0); if("1".equals(confirmStatus)){ finishTransferOrder.setOperateUser(sysUser.getRealname()); finishTransferOrder.setTransferOrderUda1(DateUtils.now()); finishTransferOrderService.updateById(finishTransferOrder); maintenanceOrder.setConfirmStatus(confirmStatus); dailyMaintenanceOrderService.updateById(maintenanceOrder); this.twoMaintenanceAlert(confirmStatus,"二保移交单维修人员",maintenanceOrder.getNum()); }else if("2".equals(confirmStatus)){ finishTransferOrder.setEquipmentInspectorUser(""); finishTransferOrder.setRepairDirectorUser(""); finishTransferOrder.setRepairUser(""); finishTransferOrder.setOperateUser(""); finishTransferOrder.setTransferOrderUda1(""); finishTransferOrderService.updateById(finishTransferOrder); maintenanceOrder.setConfirmStatus(confirmStatus); dailyMaintenanceOrderService.updateById(maintenanceOrder); this.twoMaintenanceAlert(confirmStatus,"二保移交单操作人员",maintenanceOrder.getNum()); }else if("3".equals(confirmStatus)){ finishTransferOrder.setRepairUser(sysUser.getRealname()); finishTransferOrder.setTransferOrderUda2(DateUtils.now()); finishTransferOrderService.updateById(finishTransferOrder); maintenanceOrder.setConfirmStatus(confirmStatus); dailyMaintenanceOrderService.updateById(maintenanceOrder); this.twoMaintenanceAlert(confirmStatus,"二保移交单维修室主任",maintenanceOrder.getNum()); }else if("4".equals(confirmStatus)){ finishTransferOrder.setEquipmentInspectorUser(""); finishTransferOrder.setRepairDirectorUser(""); finishTransferOrder.setRepairUser(""); finishTransferOrder.setTransferOrderUda2(""); finishTransferOrderService.updateById(finishTransferOrder); maintenanceOrder.setConfirmStatus(confirmStatus); dailyMaintenanceOrderService.updateById(maintenanceOrder); this.twoMaintenanceAlert(confirmStatus,"二保移交单维修人员",maintenanceOrder.getNum()); }else if("5".equals(confirmStatus)){ finishTransferOrder.setRepairDirectorUser(sysUser.getRealname()); finishTransferOrder.setTransferOrderUda3(DateUtils.now()); finishTransferOrderService.updateById(finishTransferOrder); maintenanceOrder.setConfirmStatus(confirmStatus); dailyMaintenanceOrderService.updateById(maintenanceOrder); this.twoMaintenanceAlert(confirmStatus,"二保移交单检验员",maintenanceOrder.getNum()); }else if("6".equals(confirmStatus)){ finishTransferOrder.setRepairDirectorUser(""); finishTransferOrder.setTransferOrderUda3(""); finishTransferOrderService.updateById(finishTransferOrder); maintenanceOrder.setConfirmStatus(confirmStatus); dailyMaintenanceOrderService.updateById(maintenanceOrder); this.twoMaintenanceAlert(confirmStatus,"二保移交单维修室主任",maintenanceOrder.getNum()); }else if("7".equals(confirmStatus)){ finishTransferOrder.setEquipmentInspectorUser(sysUser.getRealname()); finishTransferOrder.setTransferOrderUda4(DateUtils.now()); finishTransferOrderService.updateById(finishTransferOrder); maintenanceOrder.setConfirmStatus(confirmStatus); maintenanceOrder.setStatus("8"); dailyMaintenanceOrderService.updateById(maintenanceOrder); } } return Result.OK("审批成功!"); } void twoMaintenanceAlert(String confirmStatus,String roleDictItem,String orderNum){ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); SysDict sysDict = sysDictService.getOne(new QueryWrapper().eq("dict_code","info_type"),false); SysDictItem sysDictItem = sysDictItemService.getOne(new QueryWrapper().eq("item_text",roleDictItem) .eq("dict_id",sysDict.getId()),false); String roleCode = sysDictItem.getItemValue(); SysRole sysRole = sysRoleService.getOne(new QueryWrapper().eq("role_code",roleCode),false); List sysUserRoles = sysUserRoleService.list(new QueryWrapper().eq("role_id",sysRole.getId())); for(SysUserRole sysUserRole:sysUserRoles){ SysUser user = sysUserService.getById(sysUserRole.getUserId()); String msg = ""; if("1".equals(confirmStatus)){ msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确认通过,请到二级保养页面查看!"; }else if("2".equals(confirmStatus)){ msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确驳回,请到二级保养页面查看!"; }else if("3".equals(confirmStatus)){ msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确认通过,请到二级保养页面查看!"; }else if("4".equals(confirmStatus)){ msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确驳回,请到二级保养页面查看!"; }else if("5".equals(confirmStatus)){ msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确认通过,请到二级保养页面查看!"; }else if("6".equals(confirmStatus)){ msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确驳回,请到二级保养页面查看!"; } MessageDTO messageDTO = new MessageDTO(); messageDTO.setTitle("完工移交单消息提醒!"); messageDTO.setContent(msg); messageDTO.setCategory(roleDictItem); messageDTO.setFromUser("完工移交单消息提醒提醒小助手"); messageDTO.setToUser(user.getUsername()); sysBaseApi.sendSysAnnouncement(messageDTO); } } @RequestMapping(value = "/editTechnologyStatus", method = {RequestMethod.PUT,RequestMethod.POST}) @Transactional(rollbackFor = { Exception.class }) public Result editTechnologyStatus(@RequestBody Equipment equipment) { equipment.setTechnologyStatusVerificationType("1"); equipmentService.updateById(equipment); DailyMaintenanceOrder dailyMaintenanceOrder = dailyMaintenanceOrderService.getById(equipment.getMaintenanceOrderId()); dailyMaintenanceOrder.setStatus("8"); dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder); return Result.OK("编辑成功!"); } }