From a4e554b7e6c5b98e728f96be80a12b0b04eebd48 Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期三, 22 十一月 2023 19:10:28 +0800 Subject: [PATCH] 设备完好率、设备开动率报表逻辑开发 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java | 162 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 136 insertions(+), 26 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java index 073cfe2..fed8a69 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/RepairOrderController.java @@ -1,8 +1,10 @@ package org.jeecg.modules.eam.controller; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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; @@ -18,6 +20,7 @@ import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.service.*; +import org.jeecg.modules.eam.vo.EquipmentAvailabilityVo; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -35,6 +38,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -120,28 +124,28 @@ HttpServletRequest req) { Page<RepairOrder> page = new Page<RepairOrder>(pageNo, pageSize); IPage<RepairOrder> pageList = repairOrderService.getRepairOrderList(page, repairOrder); - for(RepairOrder repairOrder1 : pageList.getRecords()){ - if(StringUtils.isNotBlank(repairOrder1.getReportRepairId())){ - EquipmentReportRepair equipmentReportRepair = equipmentReportRepairService.getById(repairOrder1.getReportRepairId()); - repairOrder1.setReportRepairNum(equipmentReportRepair.getNum()); - } - if(StringUtils.isNotBlank(repairOrder1.getProjectMaintenanceOrderId())){ - ProjectMaintenanceOrderDetail projectMaintenanceOrderDetail = projectMaintenanceOrderDetailService.getById(repairOrder1.getProjectMaintenanceOrderId()); - repairOrder1.setProjectMaintenanceOrderNum(projectMaintenanceOrderDetail.getTaskNum()); - } - - String id = repairOrder1.getId(); - QueryWrapper<RepairOrderActualWorkHours> wrapper = new QueryWrapper<>(); - wrapper.eq("repair_order_id", id) - .eq("del_flag", 0); - wrapper.select("sum(actual_hour) as actualHour"); - Map<String, Object> map = repairOrderActualWorkHoursService.getMap(wrapper); - BigDecimal actualHour = new BigDecimal(0); - if (map != null) { - actualHour = (BigDecimal) map.get("actualHour"); - } - repairOrder1.setActualHour(actualHour); - } +// for(RepairOrder repairOrder1 : pageList.getRecords()){ +// if(StringUtils.isNotBlank(repairOrder1.getReportRepairId())){ +// EquipmentReportRepair equipmentReportRepair = equipmentReportRepairService.getById(repairOrder1.getReportRepairId()); +// repairOrder1.setReportRepairNum(equipmentReportRepair.getNum()); +// } +// if(StringUtils.isNotBlank(repairOrder1.getProjectMaintenanceOrderId())){ +// ProjectMaintenanceOrderDetail projectMaintenanceOrderDetail = projectMaintenanceOrderDetailService.getById(repairOrder1.getProjectMaintenanceOrderId()); +// repairOrder1.setProjectMaintenanceOrderNum(projectMaintenanceOrderDetail.getTaskNum()); +// } +// +// String id = repairOrder1.getId(); +// QueryWrapper<RepairOrderActualWorkHours> wrapper = new QueryWrapper<>(); +// wrapper.eq("repair_order_id", id) +// .eq("del_flag", 0); +// wrapper.select("sum(actual_hour) as actualHour"); +// Map<String, Object> map = repairOrderActualWorkHoursService.getMap(wrapper); +// BigDecimal actualHour = new BigDecimal(0); +// if (map != null) { +// actualHour = (BigDecimal) map.get("actualHour"); +// } +// repairOrder1.setActualHour(actualHour); +// } return Result.OK(pageList); } @@ -1501,7 +1505,7 @@ public Result<?> orderStart(@RequestBody RepairOrder repairOrder){ if(StringUtils.isNotBlank(repairOrder.getReportRepairId())){ EquipmentReportRepair equipmentReportRepair = equipmentReportRepairService.getById(repairOrder.getReportRepairId()); - equipmentReportRepair.setStatus("3"); + equipmentReportRepair.setStatus("2"); equipmentReportRepairService.updateById(equipmentReportRepair); if(StringUtils.isNotBlank(equipmentReportRepair.getEquipmentId())){ Equipment equipment = equipmentService.getById(equipmentReportRepair.getEquipmentId()); @@ -1528,7 +1532,12 @@ projectMaintenanceOrder.setTypeStatus("underExecution"); projectMaintenanceOrderService.updateById(projectMaintenanceOrder); } - return Result.OK(repairOrderService.update(new UpdateWrapper<RepairOrder>().set("status",3).set("actual_start_time",new Date(System.currentTimeMillis())).eq("id",repairOrder.getId()))); + repairOrder + .setStatus("3") + .setActualStartTime(new Date()) + .setRepairOrderUda1("normal"); + repairOrderService.updateById(repairOrder); + return Result.OK("寮�宸ユ垚鍔�"); } /** * 宸ュ崟鎶ュ伐 @@ -1536,6 +1545,7 @@ * @return */ @PutMapping(value = "/report") + @Transactional(rollbackFor = {Exception.class}) public Result<?> orderReport(@RequestBody RepairOrder repairOrder){ if(StringUtils.isNotBlank(repairOrder.getProjectMaintenanceOrderId())){ //鍒ゆ柇椤圭洰鎬х淮淇瓙琛ㄧ姸鎬� @@ -1567,9 +1577,19 @@ } LoginUser user= (LoginUser)SecurityUtils.getSubject().getPrincipal(); if(StringUtils.isNotBlank(repairOrder.getReportRepairId())){ - equipmentReportRepairService.update(new UpdateWrapper<EquipmentReportRepair>().eq("id",repairOrder.getReportRepairId()).set("status",3)); + equipmentReportRepairService.update(new UpdateWrapper<EquipmentReportRepair>().eq("id",repairOrder.getReportRepairId()).set("status",4)); } - return Result.OK(repairOrderService.update(new UpdateWrapper<RepairOrder>().set("status",4).set("actual_end_time",new Date(System.currentTimeMillis())).set("recipient_user_id",user.getId()).eq("id",repairOrder.getId()))); + Date now = new Date(); + Date start = repairOrder.getActualStartTime(); + long timeDifference = now.getTime() - start.getTime(); + BigDecimal hours = new BigDecimal(timeDifference) + .divide(new BigDecimal(60 * 60 * 1000), 3, BigDecimal.ROUND_HALF_EVEN); + repairOrder.setStatus("4"); + repairOrder.setActualEndTime(now); + repairOrder.setActualHour(hours); + repairOrder.setRecipientUserId(user.getId()); + repairOrderService.updateById(repairOrder); + return Result.OK("鎶ュ伐鎴愬姛"); } /** * 宸ュ崟鎾ら攢 @@ -1619,4 +1639,94 @@ equipmentReportRepairService.updateBatchById(equipmentReportRepairs); return Result.OK("棰嗗彇鎴愬姛"); } + /** + * 宸ュ崟绛夊浠� + * @param repairOrder + * @return + */ + @PutMapping(value = "/handleSpare") + @Transactional(rollbackFor = {Exception.class}) + public Result<?> handleSpare(@RequestBody RepairOrder repairOrder){ + repairOrder.setRepairOrderUda2(new Date()); + repairOrder.setRepairOrderUda1("needSpare"); + repairOrderService.updateById(repairOrder); + return Result.OK("鎿嶄綔鎴愬姛"); + } + /** + * 宸ュ崟鍋滄绛夊浠� + * @param repairOrder + * @return + */ + @PutMapping(value = "/handleSpareStop") + @Transactional(rollbackFor = {Exception.class}) + public Result<?> handleSpareStop(@RequestBody RepairOrder repairOrder){ + Date now = new Date(); + Date start = repairOrder.getRepairOrderUda2(); + long timeDifference = now.getTime() - start.getTime(); + BigDecimal hours = new BigDecimal(timeDifference) + .divide(new BigDecimal(60 * 60 * 1000), 3, BigDecimal.ROUND_HALF_EVEN); + repairOrder.setRepairOrderUda3(now); + repairOrder.setRepairOrderUda1("normal"); + repairOrder.setSpareTime(hours); + repairOrderService.updateById(repairOrder); + return Result.OK("鎿嶄綔鎴愬姛"); + } + /** + * 宸ュ崟绛夊姞宸ヤ欢 + * @param repairOrder + * @return + */ + @PutMapping(value = "/handlePart") + @Transactional(rollbackFor = {Exception.class}) + public Result<?> handlePart(@RequestBody RepairOrder repairOrder){ + repairOrder.setRepairOrderUda4(new Date()); + repairOrder.setRepairOrderUda1("needPart"); + repairOrderService.updateById(repairOrder); + return Result.OK("鎿嶄綔鎴愬姛"); + } + /** + * 宸ュ崟鍋滄绛夊姞宸ヤ欢 + * @param repairOrder + * @return + */ + @PutMapping(value = "/handlePartStop") + @Transactional(rollbackFor = {Exception.class}) + public Result<?> handlePartStop(@RequestBody RepairOrder repairOrder){ + Date now = new Date(); + Date start = repairOrder.getRepairOrderUda4(); + long timeDifference = now.getTime() - start.getTime(); + BigDecimal hours = new BigDecimal(timeDifference) + .divide(new BigDecimal(60 * 60 * 1000), 3, BigDecimal.ROUND_HALF_EVEN); + repairOrder.setRepairOrderUda5(now); + repairOrder.setRepairOrderUda1("normal"); + repairOrder.setPartTime(hours); + repairOrderService.updateById(repairOrder); + return Result.OK("鎿嶄綔鎴愬姛"); + } + + /** + * 璁惧瀹屽ソ鐜� + * + * @return + */ + @GetMapping("/equipmentAvailability") + public JSONObject equipmentAvailability(@RequestParam Map<String, String> query) throws ParseException { + List<EquipmentAvailabilityVo> list = repairOrderService.equipmentAvailability(query); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data",list); + return jsonObject; + } + + /** + * 璁惧鍙紑鍔ㄧ巼 + * + * @return + */ + @GetMapping("/getStartRate") + public JSONObject getStartRate(@RequestParam Map<String, String> query) throws ParseException { + List<EquipmentAvailabilityVo> list = repairOrderService.getStartRate(query); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data",list); + return jsonObject; + } } -- Gitblit v1.9.3