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 53f4dc4be..879f44d38 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 @@ -58,5 +58,5 @@ public interface RemoteDeviceService { //更新设备运行时间,实际运行时间,故障率 @PostMapping("/repairOrder/updateDeviceRunTimeORRate") - public R updateDeviceRunTimeORRate(Map map); + public R updateDeviceRunTimeORRate(); } 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 68b89d8e0..2429722c8 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 @@ -72,7 +72,7 @@ public class RemoteDeviceFallbackFactory implements FallbackFactory selectEquOperationByCode(EquOperation equOperation); + List selectEquRunTimeByDate(String createTime); } 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 49dcc6931..f6a0e2881 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 @@ -74,7 +74,7 @@ public interface IEquRepairWorkOrderService { //维修故障检验 AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO); - AjaxResult updateDeviceRunTimeORRate(Map map); + AjaxResult updateDeviceRunTimeORRate(); //是否存在 // 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 b8e3d2f4a..18d360a40 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 @@ -6,10 +6,7 @@ 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.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -795,10 +792,46 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService } @Override - public AjaxResult updateDeviceRunTimeORRate(Map map) { + public AjaxResult updateDeviceRunTimeORRate() { + + try { + DynamicDataSourceContextHolder.push("ds_1000"); + //更新产线设备运行时间,故障率 + logger.info("==========================更新产线设备运行时间,故障率开始"); + //查询当天产线的生产情况 + // 设置日期格式 + LocalDate today = LocalDate.now(); + // 计算前一天 + LocalDate yesterday = today.minusDays(1); + // 设置日期格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + //查询当天产线的运行时间 + List maps = equOperationMapper.selectEquRunTimeByDate(yesterday.format(formatter)); + //如果当天设备有运行情况 + if (maps != null && maps.size() > 0) { + //调用设备模块更新设备运行数据 + for (int i = 0; i < maps.size(); i++) { + Map updateDeviceParam = new HashMap(); + updateDeviceParam.put("RunTime", maps.get(i).get("RunTime")); + updateDeviceParam.put("equipmentCode", maps.get(i).get("equipmentCode")); + updateDeviceParam.put("productDate", yesterday.format(formatter)); + //更新方法 + this.updateDeviceStatus(updateDeviceParam); + } + } + logger.info("==========================更新产线设备运行时间,故障率结束:"+yesterday.format(formatter)); + return AjaxResult.success(); + } catch (Exception e) { + logger.info("==========================更新产线设备运行时间出现错误:" + e.getMessage()); + e.printStackTrace(); + return AjaxResult.error(e.getMessage()); + } finally { + DynamicDataSourceContextHolder.poll(); + } + } + private void updateDeviceStatus(Map map){ //查询产线绑定的设备情况 - try { - DynamicDataSourceContextHolder.push("ds_1000"); List mapList = equEquipmentMapper.selectAuxiliaryEquipmentList(map); EquOperation equOperation=new EquOperation(); for (Map mas:mapList){ @@ -813,18 +846,9 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService DecimalFormat df = new DecimalFormat("#.##"); if (operationList!=null && operationList.size()>=0){ for (EquOperation operation : operationList){ - String operationTime = operation.getOperationTime(); //更新运行时间以及实际运行时间、故障率 equOperation.setId(operation.getId()); equOperation.setOperationTime(map.get("RunTime").toString()); - if (operationTime!=null && operationTime != ""){ - String RunTime = map.get("RunTime").toString(); - equOperation.setOperationTime(map.get("RunTime").toString()); - double num = Double.parseDouble(RunTime); - double numk = Double.parseDouble(operationTime); - double sum = num + numk; - equOperation.setOperationTime(String.format("%.2f", sum)); - } //实际运行时间 = 实际运行时间 - 故障时间 double result = Double.parseDouble(map.get("RunTime").toString()) - Double.parseDouble(operation.getFaultTime()); equOperation.setActualOperationTime(String.valueOf(df.format(result))); @@ -836,12 +860,6 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService } } } - }catch (Exception e){ - return error(e.getMessage()); - }finally { - DynamicDataSourceContextHolder.poll(); - } - return success(); } 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 b7447bb46..03d405c9f 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 @@ -288,4 +288,12 @@ + diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index 77d2dc6ad..bf091fc20 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -279,5 +279,11 @@ public class RyTask { remoteMesService.syncHrAttendance(); } + // + /**********每天更新产线设备的运行参数*********/ + public void syncEquRunStatus(){ + logger.info("+++开始更新产线设备的运行参数++syncEquRunStatus+++++"); + remoteDeviceService.updateDeviceRunTimeORRate(); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/WCSInterfaceController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/WCSInterfaceController.java index 3f9ecc2d1..ac7a5b65d 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/WCSInterfaceController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/WCSInterfaceController.java @@ -186,13 +186,4 @@ public class WCSInterfaceController extends BaseController { public AjaxResult changeTransferResultTask() { return wCInterfaceService.changeTransferResultTask(); } - - /** - * 更新设备运行时间 - * @return - */ - @PostMapping("/updateResouceRunTime") - public AjaxResult updateResouceRunTime(@RequestBody Map map) { - return wCInterfaceService.updateResouceRunTime(map); - } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java index a3661b9f6..75752f322 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java @@ -122,4 +122,5 @@ public interface MesMapper { Map getProductionNumberPLC(BoardDTO mesBoard); List getproductLineList(); + } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java index 5c6f4b83e..2453036a6 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java @@ -48,6 +48,4 @@ public interface IWCSInterfaceService { Map getWhiteBoardEquPro7Days(BoardDTO boardDTO); Map getWhiteBoardProdDetails(Map paramMap); - - AjaxResult updateResouceRunTime(Map map); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 2ead9ced9..fc3731cfa 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -483,14 +483,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { sHzWorks.setMachineCode(mesReportWork.getMachineCode()); sapRson = this.reportHzToSap(sHzWorks); logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson)); - //更新产线设备运行时间,故障率 - logger.info("==========================更新产线设备运行时间,故障率开始"); - Map updateDeviceParam=new HashMap(); - updateDeviceParam.put("RunTime",sHzWorks.getWorkTime()); - updateDeviceParam.put("equipmentCode",mesReportWork.getMachineCode()); - updateDeviceParam.put("productDate",sHzWorks.getProductDate()); - R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam); - logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg()); + } else if(workOrders.size()==2){ /**(两层报工)子工单先报工,然后母工单报工**/ @@ -545,14 +538,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { //pHzWork.setSac2("4");//母单报工固定值(上位机插入数据时候默认4) R sapR = this.reportHzToSap(pHzWork); logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); - //更新产线设备运行时间,故障率 - logger.info("==========================更新产线设备运行时间,故障率开始"); - Map updateDeviceParam=new HashMap(); - updateDeviceParam.put("RunTime",sHzWorks.getSac1()); - updateDeviceParam.put("equipmentCode",mesReportWork.getMachineCode()); - updateDeviceParam.put("productDate",sHzWorks.getProductDate()); - R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam); - logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg()); return sapR; } @@ -824,18 +809,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return resultMap; } - @Override - public AjaxResult updateResouceRunTime(Map map) { - //更新产线设备运行时间,故障率 - logger.info("==========================更新产线设备运行时间,故障率开始"); - Map updateDeviceParam=new HashMap(); - updateDeviceParam.put("RunTime",map.get("RunTime")); - updateDeviceParam.put("equipmentCode",map.get("equipmentCode")); - updateDeviceParam.put("productDate",map.get("productDate")); - R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam); - logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg()); - return AjaxResult.success(rs.getMsg()); - } protected List get7Days(){ List days = new ArrayList<>(); @@ -977,15 +950,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { //如果是暂停的工单报工,向sap报工结束后,工单状态->w3 workOrder.setStatus("w3"); mesReportWorkMapper.updateOrderWorkStatus(workOrder); - - //更新产线设备运行时间,故障率 - logger.info("==========================更新产线设备运行时间,故障率开始"); - Map updateDeviceParam=new HashMap(); - updateDeviceParam.put("RunTime",workOrder.getSac1()); - updateDeviceParam.put("equipmentCode",workOrder.getMachineCode()); - updateDeviceParam.put("productDate",workOrder.getProductDate()); - R rs = remoteDeviceService.updateDeviceRunTimeORRate(updateDeviceParam); - logger.info("==========================更新产线设备运行时间,故障率结束:结果"+ rs.getMsg()); return r; // return R.ok();//测试 } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index 87788053c..5c9f020c4 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -552,5 +552,4 @@ product_date = CONVERT ( VARCHAR ( 10 ), GETDATE( ), 120 ) -