From 36deabe1df249a56a553fb606447dd326a2c81a7 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 06 三月 2025 15:22:54 +0800 Subject: [PATCH] UPDATE --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 387 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 302 insertions(+), 85 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java index 6214b1d..0f7bbce 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java @@ -5,24 +5,23 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.google.common.base.CaseFormat; import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.mdc.dto.EquipmentTemperatureDto; import org.jeecg.modules.mdc.dto.MdcEquDepDto; import org.jeecg.modules.mdc.dto.MdcEquProDto; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; import org.jeecg.modules.mdc.entity.*; import org.jeecg.modules.mdc.mapper.MdcEquipmentMapper; -import org.jeecg.modules.mdc.mapper.XYZAliasesMapper; +import org.jeecg.modules.mdc.mapper.MdcTorqueConfigMapper; import org.jeecg.modules.mdc.model.MdcEquipmentTree; import org.jeecg.modules.mdc.service.*; +import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.FindsEquipmentDepartUtil; import org.jeecg.modules.mdc.util.FindsEquipmentProductionUtil; -import org.jeecg.modules.mdc.vo.MdcEquipmentDepVo; -import org.jeecg.modules.mdc.vo.MdcEquipmentProVo; -import org.jeecg.modules.mdc.vo.MdcEquipmentVo; +import org.jeecg.modules.mdc.vo.*; import org.jeecg.modules.system.entity.MdcEquipmentDepart; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.MdcProductionEquipment; @@ -38,6 +37,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -70,13 +72,26 @@ @Resource private IMdcDriveTypeParamConfigService mdcDriveTypeParamConfigService; @Resource - private XYZAliasesMapper xyzAliasesMapper; + private MdcTorqueConfigMapper mdcTorqueConfigMapper; + @Resource - private IEquipmentXYZService equipmentXYZService; + private IEquipmentLogService equipmentLogService; + @Resource private IEquipmentBaseInfoService equipmentBaseInfoService; + @Resource - private IEquipmentTemperatureService equipmentTemperatureService; + private ISysBaseAPI sysBaseApi; + + @Resource + private IMdcAlarmInfoService mdcAlarmInfoService; + + @Resource + private IMdcEquipmentThresholdService mdcEquipmentThresholdService; + + @Resource + private IMdcOverrunAlarmService mdcOverrunAlarmService; + @Override public Map<String, String> getDepNamesByEquipmentIds(List<String> equipmentIds) { @@ -212,7 +227,7 @@ } @Override - public List<MdcEquipmentTree> loadTreeListByDepart(String userId) { + public List<MdcEquipmentTree> loadTreeListByDepart(String userId, String key) { //鑾峰彇鎵�鏈夐儴闂ㄦ暟鎹� List<SysDepart> departList = sysDepartService.list(new LambdaQueryWrapper<SysDepart>().eq(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(SysDepart::getDepartOrder)); //鏍规嵁鐢ㄦ埛ID鑾峰彇鎷ユ湁鐨勯儴闂╥d闆嗗悎 @@ -229,7 +244,7 @@ //缁勮閮ㄩ棬璁惧鏍� List<MdcEquipmentTree> treeList = FindsEquipmentDepartUtil.wrapEquipmentDepartTreeList(list); //濉厖璁惧鏁版嵁 - FillEquipmentByDepart(treeList); + FillEquipmentByDepart(treeList, key); return treeList; } @@ -238,9 +253,9 @@ * * @param treeList */ - private void FillEquipmentByDepart(List<MdcEquipmentTree> treeList) { + private void FillEquipmentByDepart(List<MdcEquipmentTree> treeList, String key) { for (MdcEquipmentTree mdcEquipmentTree : treeList) { - List<MdcEquipment> equipmentList = this.baseMapper.queryByDepartId(mdcEquipmentTree.getKey()); + List<MdcEquipment> equipmentList = this.baseMapper.queryByDepartId(mdcEquipmentTree.getKey(), key); if (equipmentList != null && !equipmentList.isEmpty()) { for (MdcEquipment mdcEquipment : equipmentList) { MdcEquipmentTree tree = new MdcEquipmentTree().convert(mdcEquipment); @@ -250,7 +265,7 @@ mdcEquipmentTree.setLeaf(false); } if (!mdcEquipmentTree.getChildren().isEmpty()) { - FillEquipmentByDepart(mdcEquipmentTree.getChildren()); + FillEquipmentByDepart(mdcEquipmentTree.getChildren(), key); } } } @@ -277,7 +292,7 @@ @Override - public List<MdcEquipmentTree> loadTreeListByProduction(String userId) { + public List<MdcEquipmentTree> loadTreeListByProduction(String userId, String key) { //鑾峰彇鎵�鏈変骇绾挎暟鎹� List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder)); //鏍规嵁鐢ㄦ埛id鑾峰彇鎷ユ湁鐨勪骇绾夸俊鎭泦鍚� @@ -294,7 +309,7 @@ //缁勮浜х嚎璁惧鏍� List<MdcEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list); //濉厖璁惧鏁版嵁 - FillEquipmentByProduction(treeList); + FillEquipmentByProduction(treeList, key); return treeList; } @@ -348,14 +363,23 @@ mdcEquipmentDto.setDevicePower(mdcEquipment.getDevicePower()); mdcEquipmentDto.setDeviceType(mdcEquipment.getDriveType()); mdcEquipmentDto.setRemark(mdcEquipment.getRemark()); - mdcEquipmentDto.setEquipmentID(mdcEquipment.getEquipmentId());//璁惧缂栧彿 + //璁惧缂栧彿 + mdcEquipmentDto.setEquipmentID(mdcEquipment.getEquipmentId()); mdcEquipmentDto.setEquipmentName(mdcEquipment.getEquipmentName()); mdcEquipmentDto.setEquipmentIP(mdcEquipment.getEquipmentIp()); - mdcEquipmentDto.setEquipmentModel(mdcEquipment.getEquipmentModel());//璁惧鍨嬪彿 + //璁惧鍨嬪彿 + mdcEquipmentDto.setEquipmentModel(mdcEquipment.getEquipmentModel()); mdcEquipmentDto.setDriveType(mdcEquipment.getDriveType()); mdcEquipmentDto.setDataPort(mdcEquipment.getDataPort()); mdcEquipmentDto.setDataFlag(Integer.parseInt(CommonConstant.STATUS_1)); ControlSystem controlSystem = controlSystemService.getByDriveType(mdcEquipmentDto.getDriveType()); + // 鏌ヨ璁惧鐘舵�� + EquipmentLog equipmentLog = equipmentLogService.selectEquipmentOporation(mdcEquipment.getEquipmentId()); + if (equipmentLog == null) { + return mdcEquipmentDto; + } + Integer oporation = equipmentLog.getOporation(); + if (controlSystem != null) { //鑾峰彇宸ヤ綔鏁版嵁骞跺垵濮嬪寲 String saveTableName = mdcEquipment.getSaveTableName(); @@ -371,6 +395,15 @@ mdcEquipmentDto.setSequencenumber(dto.getSequencenumber()); mdcEquipmentDto.setExecutingcode(dto.getExecutingcode()); mdcEquipmentDto.setProductName(dto.getProductName()); + if ("LSV2".equals(mdcEquipment.getDriveType())) { + mdcEquipmentDto.setSpindlebeilv(dto.getSFeed()); + mdcEquipmentDto.setFeedbeilv(dto.getFFeed()); + mdcEquipmentDto.setRapidfeed(dto.getRapidfeed()); + mdcEquipmentDto.setNCVersion(dto.getNCVersion()); + mdcEquipmentDto.setTNCVersion(dto.getTNCVersion()); + mdcEquipmentDto.setOPTVersion(dto.getOPTVersion()); + mdcEquipmentDto.setPLCVersion(dto.getPLCVersion()); + } //鑾峰彇 MDC 椹卞姩瀵瑰簲鐨勫睍绀哄弬鏁� 骞舵牴鎹甼ey 鎷艰浠� workData 鏌ヨ鐨勬暟鎹� List<MdcDriveTypeParamConfig> mdcDriveTypeParamList = mdcDriveTypeParamConfigService.getShowDriveParam(mdcEquipment.getDriveType()); @@ -379,75 +412,70 @@ String englishName = mdcDriveTypeParamConfig.getEnglishName(); JSONObject jsonObject = (JSONObject) JSONObject.toJSON(dto); Object result = jsonObject.get(englishName); - String value = result == null ? null : result.toString(); + String value = ""; + if ("CollectTime".equals(englishName)) { + Date date = result == null ? null : (Date) result; + value = DateUtils.format(date, DateUtils.STR_DATE_TIME_SMALL); + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "AI01".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧鐢垫祦瀛楁AI01 + value = BigDecimal.valueOf(Math.random() * 15 + 0).setScale(1, RoundingMode.HALF_UP).toString(); + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindlespeed".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧涓昏酱杞�熷瓧娈祍pindlespeed + value = String.valueOf(((new Random().nextInt(35)) + 1) * 100); + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindleload".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧涓昏酱璐熻嵎瀛楁spindleload + value = String.valueOf(Integer.valueOf(new Random().nextInt(21))); + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindlebeilv".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧涓昏酱鍊嶇巼瀛楁spindlebeilv + value = String.valueOf((new Random().nextInt(13)) * 10); + } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "feedbeilv".equals(englishName) && oporation == 3) { + // ZUOLAN璁惧杩涚粰鍊嶇巼瀛楁feedbeilv + value = String.valueOf((new Random().nextInt(13)) * 10); + } else if ("spindle_current".equals(englishName)) { + // 鍏朵粬璁惧鐢垫祦瀛楁 + String devicePower = mdcEquipment.getDevicePower(); + Object spindleload = jsonObject.get("spindleload"); + BigDecimal load = spindleload == null ? BigDecimal.ZERO : new BigDecimal(spindleload.toString()); + if (StringUtils.isNotEmpty(devicePower) && oporation == 3) { + value = new BigDecimal(devicePower).divide(new BigDecimal("380"), 2, BigDecimal.ROUND_HALF_UP).add(load).toString(); + } else { + value = "0"; + } + } else if ("torque".equals(englishName)) { + // 鎵煩瀛楁 + MdcTorqueConfig mdcTorqueConfig = mdcTorqueConfigMapper.findLast(mdcEquipment.getEquipmentId()); + if (mdcTorqueConfig != null) { + value = String.valueOf(mdcTorqueConfig.getTorqueValue()); + } else { + value = "0"; + } + } else if ("alarm".equals(englishName)) { + if (oporation == 22) { + value = equipmentLog.getAlarm(); + } else { + value = "鏃�"; + } + } else if ("alarmContent".equals(englishName)) { + if (oporation == 22) { + List<MdcAlarmInfo> mdcAlarmInfo = mdcAlarmInfoService.list(new LambdaQueryWrapper<MdcAlarmInfo>().eq(MdcAlarmInfo::getDriveType, mdcEquipment.getDriveType()).eq(MdcAlarmInfo::getAlarmCode, equipmentLog.getAlarm()).eq(MdcAlarmInfo::getIsUse, 0)); + if (mdcAlarmInfo != null && !mdcAlarmInfo.isEmpty()) { + value = mdcAlarmInfo.get(0).getAlarmContent(); + } + } else { + value = "鏃�"; + } + } else { + value = result == null ? null : result.toString(); + } mdcDriveTypeParamConfig.setValue(value); } mdcEquipmentDto.setMdcDriveTypeParamConfigList(mdcDriveTypeParamList); } - } - // 璁惧鍧愭爣鏁� 鑾峰彇璁惧闇�瑕侀噰闆嗙殑鍧愭爣淇℃伅 - List<XYZAliases> equipmentCoordinateList = xyzAliasesMapper.getCoordinateByEquipmentId(mdcEquipment.getEquipmentId()); - // 璁惧閲囬泦鐨勫潗鏍囦俊鎭� - EquipmentXYZ equipmentXYZ = equipmentXYZService.getByEquipmentId(mdcEquipment.getEquipmentId()); - JSONObject jsonEquipmentXYZ = (JSONObject) JSONObject.toJSON(equipmentXYZ); - if (equipmentCoordinateList != null && !equipmentCoordinateList.isEmpty()) { - for (XYZAliases xyzAliases : equipmentCoordinateList) { - String englishName = xyzAliases.getXYZFieldName().toLowerCase(); - englishName = englishName.substring(0, 1) + "_" + englishName.substring(1, englishName.length()); - englishName = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, englishName); - Object orgValue = jsonEquipmentXYZ.get(englishName); - String value = orgValue != null ? orgValue.toString() : null; - // 鍧愭爣鏁版嵁鐨則itle 鏉ヨ嚜 xyzAliases 琛�, 鏍规嵁 鏄惁鍖呭惈 absolute 鍜� machine 鍒ゆ柇鏄粷瀵瑰潗鏍囪繕鏄満搴婂潗鏍� - String title = englishName.substring(0, 1).toUpperCase(); - title = englishName.contains("absolute") ? "缁濆鍧愭爣" + title : "鏈哄簥鍧愭爣" + title; - xyzAliases.setTitle(title); - xyzAliases.setValue(value); + EquipmentBaseInfo equipmentBaseInfo = equipmentBaseInfoService.getByEquipmentId(mdcEquipment.getEquipmentId()); + if (equipmentBaseInfo != null) { + mdcEquipmentDto.setMaxAxis(equipmentBaseInfo.getMaxAxis()); + mdcEquipmentDto.setValidAxis(equipmentBaseInfo.getValidAxis()); } - mdcEquipmentDto.setXyzAliasesList(equipmentCoordinateList); - } - - if (equipmentXYZ != null) { - mdcEquipmentDto.setXmachine(equipmentXYZ.getXMachine()); - mdcEquipmentDto.setYmachine(equipmentXYZ.getYMachine()); - mdcEquipmentDto.setZmachine(equipmentXYZ.getZMachine()); - mdcEquipmentDto.setAmachine(equipmentXYZ.getAMachine()); - mdcEquipmentDto.setBmachine(equipmentXYZ.getBMachine()); - mdcEquipmentDto.setXabsolute(equipmentXYZ.getXAbsolute()); - mdcEquipmentDto.setYabsolute(equipmentXYZ.getYAbsolute()); - mdcEquipmentDto.setZabsolute(equipmentXYZ.getZAbsolute()); - mdcEquipmentDto.setAabsolute(equipmentXYZ.getAAbsolute()); - mdcEquipmentDto.setBabsolute(equipmentXYZ.getBAbsolute()); - } - EquipmentBaseInfo equipmentBaseInfo = equipmentBaseInfoService.getByEquipmentId(mdcEquipment.getEquipmentId()); - if (equipmentBaseInfo != null) { - mdcEquipmentDto.setMaxAxis(equipmentBaseInfo.getMaxAxis()); - mdcEquipmentDto.setValidAxis(equipmentBaseInfo.getValidAxis()); - } - if (controlSystem.getDriveType().equals("SIEMENS840DSL")) { - EquipmentTemperatureDto equipmentTemperature = equipmentTemperatureService.getEquipmentTemperature(mdcEquipment.getEquipmentId()); - if (equipmentTemperature != null) { - mdcEquipmentDto.setTemperatureX(equipmentTemperature.getX()); - mdcEquipmentDto.setTemperatureY(equipmentTemperature.getY()); - mdcEquipmentDto.setTemperatureZ(equipmentTemperature.getZ()); - mdcEquipmentDto.setTemperatureA(equipmentTemperature.getA()); - mdcEquipmentDto.setTemperatureB(equipmentTemperature.getB()); - } - EquipmentTemperatureDto equipmentLagError = equipmentTemperatureService.getEquipmentLagError(mdcEquipment.getEquipmentId()); - if (equipmentLagError != null) { - mdcEquipmentDto.setEquipmentLagErrorX(equipmentLagError.getX()); - mdcEquipmentDto.setEquipmentLagErrorY(equipmentLagError.getY()); - mdcEquipmentDto.setEquipmentLagErrorZ(equipmentLagError.getZ()); - mdcEquipmentDto.setEquipmentLagErrorA(equipmentLagError.getA()); - mdcEquipmentDto.setEquipmentLagErrorB(equipmentLagError.getB()); - } - } - EquipmentTemperatureDto equipmentCurrent = equipmentTemperatureService.getEquipmentCurrent(mdcEquipment.getEquipmentId()); - if (equipmentCurrent != null) { - mdcEquipmentDto.setEquipmentCurrentX(equipmentCurrent.getX()); - mdcEquipmentDto.setEquipmentCurrentY(equipmentCurrent.getY()); - mdcEquipmentDto.setEquipmentCurrentZ(equipmentCurrent.getZ()); - mdcEquipmentDto.setEquipmentCurrentA(equipmentCurrent.getA()); - mdcEquipmentDto.setEquipmentCurrentB(equipmentCurrent.getB()); } } return mdcEquipmentDto; @@ -604,9 +632,9 @@ /** * 浜х嚎璁惧鏍戝~鍏呰澶囨暟鎹� */ - private void FillEquipmentByProduction(List<MdcEquipmentTree> treeList) { + private void FillEquipmentByProduction(List<MdcEquipmentTree> treeList, String key) { for (MdcEquipmentTree mdcEquipmentTree : treeList) { - List<MdcEquipment> equipmentList = this.baseMapper.queryByProductionId(mdcEquipmentTree.getKey()); + List<MdcEquipment> equipmentList = this.baseMapper.queryByProductionId(mdcEquipmentTree.getKey(), key); if (equipmentList != null && !equipmentList.isEmpty()) { for (MdcEquipment mdcEquipment : equipmentList) { MdcEquipmentTree tree = new MdcEquipmentTree().convert(mdcEquipment); @@ -616,7 +644,7 @@ mdcEquipmentTree.setLeaf(false); } if (!mdcEquipmentTree.getChildren().isEmpty()) { - FillEquipmentByProduction(mdcEquipmentTree.getChildren()); + FillEquipmentByProduction(mdcEquipmentTree.getChildren(), key); } } } @@ -687,4 +715,193 @@ return null; } + /** + * 鏍规嵁澶у睆杞﹂棿id鏌ヨ璁惧鍒楄〃 + */ + @Override + public IPage<MdcEquipment> getEquipmentByWorkshopId(Page<MdcEquipment> page, WorkshopEquipmentVo workshopEquipmentVo) { + return this.baseMapper.getEquipmentByWorkshopId(page, workshopEquipmentVo); + } + + @Override + public List<String> listEquipmentId(MdcEfficiencyReportQueryVo vo) { + LambdaQueryWrapper<MdcEquipment> queryWrapper = new LambdaQueryWrapper<>(); + if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) { + queryWrapper.in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList()); + } + if (StringUtils.isNotEmpty(vo.getEquipmentType())) { + queryWrapper.in(MdcEquipment::getEquipmentType, Arrays.asList(vo.getEquipmentType().split(","))); + } + if (StringUtils.isNotEmpty(vo.getDeviceLevel())) { + queryWrapper.in(MdcEquipment::getDeviceLevel, Arrays.asList(vo.getDeviceLevel().split(","))); + } + if (StringUtils.isNotEmpty(vo.getDriveType())) { + queryWrapper.in(MdcEquipment::getDriveType, Arrays.asList(vo.getDriveType().split(","))); + } + if (StringUtils.isNotEmpty(vo.getDeviceCategory())) { + queryWrapper.in(MdcEquipment::getDeviceCategory, Arrays.asList(vo.getDeviceCategory().split(","))); + } + if (vo.getDeviceImportanceLevel() != null) { + queryWrapper.eq(MdcEquipment::getDeviceImportanceLevel, vo.getDeviceImportanceLevel()); + } + List<MdcEquipment> list = super.list(queryWrapper); +// List<MdcEquipment> list = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentType, equipmentType).in(MdcEquipment::getEquipmentId, equipmentIdList)); + return list.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList()); + } + + @Override + public IPage<MdcEquipment> pageList(Page<MdcEquipment> page, MdcEquipmentVo mdcEquipment, HttpServletRequest req) { + if (StringUtils.isNotBlank(mdcEquipment.getProductionName())) { + // 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣 + List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName()); + mdcEquipment.setProductionIds(productionIds); + } + return this.baseMapper.pageList(page, mdcEquipment); + } + + /** + * 鐩戞帶璁惧杩愯鍙傛暟浠诲姟 + */ + @Override + public void monitoringSpeedProcess() { +// List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC")); + List<MdcEquipment> equipmentList = super.list(); + //List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); + Map<String, String> proNamesByEquipmentIds = this.getProNamesByEquipmentIds(equipmentList.stream().map(MdcEquipment::getId).collect(Collectors.toList())); + for (MdcEquipment mdcEquipment : equipmentList) { + String productionName = proNamesByEquipmentIds.get(mdcEquipment.getId()); + List<MdcEquipmentThreshold> mdcEquipmentThresholdList = mdcEquipmentThresholdService.list(new LambdaQueryWrapper<MdcEquipmentThreshold>().eq(MdcEquipmentThreshold::getControlSystemType, mdcEquipment.getDriveType())); + if (mdcEquipmentThresholdList != null && !mdcEquipmentThresholdList.isEmpty()) { + String saveTableName = mdcEquipment.getSaveTableName(); + StringBuilder builder = new StringBuilder(); + for (MdcEquipmentThreshold mdcEquipmentThreshold : mdcEquipmentThresholdList) { + builder.append(",").append(mdcEquipmentThreshold.getEnglishName()).append(" as \"").append(mdcEquipmentThreshold.getEnglishName()).append("\" "); + } + Map<String, Object> param = new HashMap<>(); + param.put("columns", builder.toString()); + param.put("tableName", saveTableName); + Map<String, Object> map = new HashMap<>(); + try { + map = this.baseMapper.getWorkLineLast(param); + } catch (Exception e) { + log.error("鏌ヨ鍗曡〃鏁版嵁鍑哄樊锛�", e); + } + if (!map.isEmpty()) { + for (MdcEquipmentThreshold mdcEquipmentThreshold : mdcEquipmentThresholdList) { + Integer actualValue = Integer.valueOf(map.get(mdcEquipmentThreshold.getEnglishName()).toString()); + Integer max = mdcEquipmentThreshold.getMaxThreshold(); + Integer min = mdcEquipmentThreshold.getMinThreshold(); + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "鎶ヨ锛�"); + messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + MdcOverrunAlarm mdcOverrunAlarm = new MdcOverrunAlarm(); + mdcOverrunAlarm.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcOverrunAlarm.setSetValue(min + "-" + max); + mdcOverrunAlarm.setRealValue(actualValue.toString()); + if (actualValue > max) { + // 楂� + messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "楂樻姤璀︼紒"); + sysBaseApi.sendSysAnnouncement(messageDTO); + mdcOverrunAlarm.setAlarmContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "楂樻姤璀︼紒"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); + } else if (actualValue < min) { + // 浣� + messageDTO.setContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "浣庢姤璀︼紒"); + sysBaseApi.sendSysAnnouncement(messageDTO); + mdcOverrunAlarm.setAlarmContent("銆愯澶囧紓甯告彁閱掋��" + productionName + "杞﹂棿璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "浣庢姤璀︼紒"); + mdcOverrunAlarmService.save(mdcOverrunAlarm); + } + } + } + } + } + + } + + /** + * 瀵煎嚭list + * + * @param mdcEquipment + * @return + */ + @Override + public List<MdcEquipment> exportXlsList(MdcEquipmentVo mdcEquipment) { + if (StringUtils.isNotBlank(mdcEquipment.getProductionName())) { + // 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣 + List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName()); + mdcEquipment.setProductionIds(productionIds); + } + return this.baseMapper.exportXlsList(mdcEquipment); + } + + /** + * 閫氳繃杞﹂棿ids鑾峰彇璁惧鏍� + * + * @param ids + * @return + */ + @Override + public List<MdcEquipmentTree> loadTreeListByProductionIds(String ids) { + List<String> productionIds = Arrays.asList(ids.split(",")); + //鑾峰彇鎵�鏈変骇绾挎暟鎹� + List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder)); + List<String> allProductionIds = new ArrayList<>(); + //鎵惧埌鎵�鏈変骇绾縤d鐨勪笂绾d + if (!productionIds.isEmpty()) { + for (String productionId : productionIds) { + this.getAllProductionIds(productionList, productionId, allProductionIds); + } + } + //杩囨护浜х嚎鏁版嵁 + List<MdcProduction> list = productionList.stream().filter((MdcProduction mdcProduction) -> allProductionIds.contains(mdcProduction.getId())).collect(Collectors.toList()); + //缁勮浜х嚎璁惧鏍� + List<MdcEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list); + //濉厖璁惧鏁版嵁 + FillEquipmentByProduction(treeList, null); + return treeList; + } + + /** + * 鏌ヨ鍗曡〃鏁版嵁 + * + * @param tableName + * @return + */ + @Override + public MdcEquipmentDto getWorkLineLast(String tableName) { + try { + return this.baseMapper.findWorkLineLast(tableName); + } catch (Exception e) { + return null; + } + } + + @Override + public List<String> listEquipmentIdShift(MdcEfficiencyReportShiftQueryVo vo) { + LambdaQueryWrapper<MdcEquipment> queryWrapper = new LambdaQueryWrapper<>(); + if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) { + queryWrapper.in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList()); + } + if (StringUtils.isNotEmpty(vo.getEquipmentType())) { + queryWrapper.in(MdcEquipment::getEquipmentType, Arrays.asList(vo.getEquipmentType().split(","))); + } + if (StringUtils.isNotEmpty(vo.getDeviceLevel())) { + queryWrapper.in(MdcEquipment::getDeviceLevel, Arrays.asList(vo.getDeviceLevel().split(","))); + } + if (StringUtils.isNotEmpty(vo.getDriveType())) { + queryWrapper.in(MdcEquipment::getDriveType, Arrays.asList(vo.getDriveType().split(","))); + } + if (StringUtils.isNotEmpty(vo.getDeviceCategory())) { + queryWrapper.in(MdcEquipment::getDeviceCategory, Arrays.asList(vo.getDeviceCategory().split(","))); + } + if (vo.getDeviceImportanceLevel() != null) { + queryWrapper.eq(MdcEquipment::getDeviceImportanceLevel, vo.getDeviceImportanceLevel()); + } + List<MdcEquipment> list = super.list(queryWrapper); +// List<MdcEquipment> list = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentType, equipmentType).in(MdcEquipment::getEquipmentId, equipmentIdList)); + return list.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList()); + } + } -- Gitblit v1.9.3