From 4ee47b457cabda30973e57e85ea84e694b5b2283 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Fri, 5 Jan 2024 17:48:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=8C=81=20=E6=8A=A5=E4=BF=AE?= =?UTF-8?q?=E5=8D=95=E5=90=8E=E7=AB=AF+=E7=BB=B4=E4=BF=AE=E5=8D=95?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E5=8A=A0=E9=80=BB=E8=BE=91=20=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=AE=8C=E5=A5=BD=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DevicePDAController.java | 6 +- .../op/device/mapper/EquEquipmentMapper.java | 4 +- .../op/device/service/IDevicePDAService.java | 4 +- .../service/impl/DevicePDAServiceImpl.java | 75 ++++++++++++++++--- .../mapper/device/EquEquipmentMapper.xml | 4 +- .../mapper/device/EquOperationMapper.xml | 1 + 6 files changed, 74 insertions(+), 20 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java index 8d4602a5..18d6e43d 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java @@ -124,9 +124,9 @@ public class DevicePDAController extends BaseController { /** * 获取设备管理详细信息 */ - @GetMapping(value = "/queryEquipment/{equipmentId}") - public AjaxResult queryEquipment(@PathVariable("equipmentId") Long equipmentId) { - return devicePDAService.selectEquEquipmentByEquEquipmentId(equipmentId); + @GetMapping(value = "/queryEquipment/{equipmentCode}") + public AjaxResult queryEquipment(@PathVariable("equipmentCode") String equipmentCode) { + return devicePDAService.selectEquEquipmentByEquEquipmentCode(equipmentCode); } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java index e258c0d1..bbfb394d 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java @@ -17,10 +17,10 @@ public interface EquEquipmentMapper { /** * 查询设备管理 * - * @param equipmentId 设备管理主键 + * @param equipmentCode * @return 设备管理 */ - public EquEquipment selectEquEquipmentByEquEquipmentId(Long equipmentId); + public EquEquipment selectEquEquipmentByEquEquipmentCode(String equipmentCode); /** * 查询设备管理列表 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java index 0fe60052..70054be9 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java @@ -86,10 +86,10 @@ public interface IDevicePDAService { /** * 查询设备详细信息 * - * @param equipmentId + * @param equipmentCode * @return */ - public AjaxResult selectEquEquipmentByEquEquipmentId(Long equipmentId); + public AjaxResult selectEquEquipmentByEquEquipmentCode(String equipmentCode); /** * 查询维修工单 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 79cc9f17..9777cee0 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -22,8 +22,13 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; import java.util.*; import static com.op.common.core.web.domain.AjaxResult.error; @@ -81,6 +86,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquFaultReasonMapper equFaultReasonMapper; + @Autowired + private EquOperationMapper equOperationMapper; + /** * 获取今日任务工单list-状态不为已完成 @@ -627,14 +635,14 @@ public class DevicePDAServiceImpl implements IDevicePDAService { /** * 查询设备 - * @param equipmentId + * @param equipmentCode * @return */ @Override @DS("#header.poolName") - public AjaxResult selectEquEquipmentByEquEquipmentId(Long equipmentId) { + public AjaxResult selectEquEquipmentByEquEquipmentCode(String equipmentCode) { try { - EquEquipment list = equEquipmentMapper.selectEquEquipmentByEquEquipmentId(equipmentId); + EquEquipment list = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equipmentCode); return success(list); } catch (Exception e) { return error(); @@ -705,7 +713,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { try { - //判断是否停机 + //1.判断是否停机 EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); if (list.getWorkDownMachine().equals("1")) { //维修真正停机时间 @@ -714,10 +722,55 @@ public class DevicePDAServiceImpl implements IDevicePDAService { //维修工单结束时间 equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); - //计算维修工单用时 - //获取工单的开始时间 + //2.计算维修工单用时 + if(list.getWorkStartTime()!= null && equRepairWorkOrder.getWorkEndTime()!= null){ + + //2.1计算日期差值 + ZoneId zoneId = ZoneId.systemDefault(); + LocalDateTime start = LocalDateTime.ofInstant(list.getWorkStartTime().toInstant(), zoneId); + LocalDateTime end = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId); + LocalDateTime tempDateTime = LocalDateTime.from(start); + +// long years = tempDateTime.until(end, ChronoUnit.YEARS); +// tempDateTime = tempDateTime.plusYears(years); +// long months = tempDateTime.until(end, ChronoUnit.MONTHS); +// tempDateTime = tempDateTime.plusMonths(months); +// long days = tempDateTime.until(end, ChronoUnit.DAYS); +// tempDateTime = tempDateTime.plusDays(days); + + double hours = tempDateTime.until(end, ChronoUnit.HOURS); +// tempDateTime = tempDateTime.plusHours(hours); + double minutes = ((tempDateTime.until(end, ChronoUnit.MINUTES)*1.0)%60)/60; +// tempDateTime = tempDateTime.plusMinutes(minutes); + double seconds = ((tempDateTime.until(end, ChronoUnit.SECONDS)*1.0)%3600)/3600; + double hour = BigDecimal.valueOf(hours + minutes + seconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + + //2.2查询完好率报表 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String time = sdf.format(equRepairWorkOrder.getWorkEndTime()); + EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time,equRepairWorkOrder.getEquipmentCode()); + + //2.3修改完好率报表 + if(equOperation != null){ + DecimalFormat df = new DecimalFormat("#.##"); + //实际运行时间 = 实际运行时间 - 故障时间 + double result = Double.parseDouble(equOperation.getActualOperationTime()) - hour; + //故障时间 = 原来的故障时间 + 这次的故障时间 + double faultTime = Double.parseDouble(equOperation.getFaultTime()) + hour; + equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间 + equOperation.setFaultTime(String.valueOf(faultTime));//故障时间 + + BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障时间 + BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());// 运行时间 + + equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD,2, RoundingMode.HALF_UP).toString()+"%"); + equOperation.setUpdateBy(SecurityUtils.getUsername()); + equOperation.setUpdateTime(DateUtils.getNowDate()); + equOperationMapper.updateEquOperation(equOperation); + } + } - ////更新每一项点检/巡检检查项信息 + ////3.更新每一项点检/巡检检查项信息 //判空 if(StringUtils.isNotEmpty(equRepairWorkOrder.getDetailList())){ List checkLists = equRepairWorkOrder.getDetailList(); @@ -758,7 +811,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } } - ////新建申领单 + ////4.新建申领单 //判空 if(StringUtils.isNotEmpty(equRepairWorkOrder.getApplyList())){ List equSpareApplies = equRepairWorkOrder.getApplyList(); @@ -803,7 +856,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } } - ////增加多个维修后照片 + ////5.增加多个维修后照片 //先删除每个维修工单对应图片 equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { @@ -825,7 +878,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairWorkOrderMapper.insertBaseFileBatch(files); } - ////更新维修工单 + ////6.更新维修工单 //维修状态 equRepairWorkOrder.setWorkStatus("1"); //维修人 @@ -843,7 +896,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { // BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); // equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); - //修改设备状态 由维修中改为正常运行 + //7.修改设备状态 由维修中改为正常运行 EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(example.getEquipmentCode()); equEquipment.setEquipmentStatus("1"); diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquEquipmentMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquEquipmentMapper.xml index b5dbaed9..479dcaa7 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquEquipmentMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquEquipmentMapper.xml @@ -92,9 +92,9 @@ - - where equipment_id = #{equipmentId} + where equipment_code = #{equipmentCode} diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml index 981c7e2b..cad74285 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml @@ -265,6 +265,7 @@ where CONVERT(varchar,create_time,21) like concat('%',#{time}, '%') and equipment_code = #{equipmentCode} + and del_flag = '0' \ No newline at end of file