diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java index bd25abe99..53f4dc4be 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; +import java.util.Map; /** * 用户服务 @@ -54,4 +55,8 @@ public interface RemoteDeviceService { @PostMapping("/faultReport/check") public R check(@RequestBody DeviceRepairOrder deviceRepairOrder); + + //更新设备运行时间,实际运行时间,故障率 + @PostMapping("/repairOrder/updateDeviceRunTimeORRate") + public R updateDeviceRunTimeORRate(Map map); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java index da994c059..68b89d8e0 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java @@ -11,6 +11,7 @@ import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.util.List; +import java.util.Map; /** * 用户服务降级处理 @@ -69,6 +70,11 @@ public class RemoteDeviceFallbackFactory implements FallbackFactory selectEquipmentList(EquEquipment equEquipment); //查询组线为空的设备列表 List selectGroupLineNullList(EquEquipment equEquipment); -} \ No newline at end of file + + List selectAuxiliaryEquipmentList(Map map); +} diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationMapper.java index 20a63bec6..8843f594d 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationMapper.java @@ -96,4 +96,7 @@ public interface EquOperationMapper { public EquOperation selectEquipmentIntegrityRate(@Param("time") String time, @Param("equipmentCode") String equipmentCode); String getInfoByUserName(String part); + + public EquOperation selectEquOperationByCode(EquOperation equOperation); + } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java index c0ff71de9..49dcc6931 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java @@ -1,6 +1,7 @@ package com.op.device.service; import java.util.List; +import java.util.Map; import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.EquEquipment; @@ -73,6 +74,8 @@ public interface IEquRepairWorkOrderService { //维修故障检验 AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO); + AjaxResult updateDeviceRunTimeORRate(Map map); + //是否存在 // boolean checkWorkCodeUnique(EquRepairWorkOrder equRepairWorkOrder); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 7f21041b6..21cd468f5 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -4,9 +4,12 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -80,6 +83,8 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService @Autowired private EquRepairOrderMapper equRepairOrderMapper; + + /** * 查询维修工单 * @@ -788,6 +793,45 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService return success(msg); } + @Override + @DS("#header.poolName") + public AjaxResult updateDeviceRunTimeORRate(Map map) { + //查询产线绑定的设备情况 + + try { + List mapList = equEquipmentMapper.selectAuxiliaryEquipmentList(map); + EquOperation equOperation=new EquOperation(); + for (Map mas:mapList){ + System.out.println(); + //查询设备有没有生成记录 + String equipmentCode = mas.get("equipmentCode").toString(); + String Time = map.get("productDate").toString(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate localDate = LocalDate.parse(Time, formatter); + equOperation.setCreateTime(java.sql.Date.valueOf(localDate)); + equOperation.setEquipmentCode(equipmentCode); + EquOperation operation = equOperationMapper.selectEquOperationByCode(equOperation); + DecimalFormat df = new DecimalFormat("#.##"); + if (operation!=null){ + //更新运行时间以及实际运行时间、故障率 + equOperation.setId(operation.getId()); + equOperation.setOperationTime(map.get("RunTime").toString()); + //实际运行时间 = 实际运行时间 - 故障时间 + double result = Double.parseDouble(map.get("RunTime").toString()) - Double.parseDouble(operation.getFaultTime()); + equOperation.setActualOperationTime(String.valueOf(df.format(result))); + //故障率计算(故障时间/运行时间) + BigDecimal faultTimeBD = new BigDecimal(operation.getFaultTime()); + BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间 + equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%"); + equOperationMapper.updateEquOperation(equOperation); + } + } + }catch (Exception e){ + return error(e.getMessage()); + } + return success(); + } + // @Override // @DS("#header.poolName") // public boolean checkWorkCodeUnique(EquRepairWorkOrder equRepairWorkOrder) { 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 7ed12fde5..03cd97296 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 @@ -313,5 +313,17 @@ and be.del_flag = '0' + diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquFaultDescriptionMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquFaultDescriptionMapper.xml index 554b74e6e..a3c1cc4f3 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquFaultDescriptionMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquFaultDescriptionMapper.xml @@ -56,7 +56,7 @@ 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 b5380a081..b7447bb46 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 @@ -105,6 +105,12 @@ where id = #{id} + +