From 848e5624f3a814763e81db5d79d8f0761c5bb4f1 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 01 二月 2024 10:25:40 +0800 Subject: [PATCH] 设备管理按照车间筛选和导出 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 247 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 163 insertions(+), 84 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 65ac02d..46d6aed 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 @@ -6,21 +6,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.system.vo.DictModel; import org.jeecg.common.util.oConvertUtils; 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.ControlSystem; -import org.jeecg.modules.mdc.entity.MdcDriveTypeParamConfig; -import org.jeecg.modules.mdc.entity.MdcEquipment; -import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor; +import org.jeecg.modules.mdc.entity.*; import org.jeecg.modules.mdc.mapper.MdcEquipmentMapper; +import org.jeecg.modules.mdc.mapper.MdcTorqueConfigMapper; import org.jeecg.modules.mdc.model.MdcEquipmentTree; -import org.jeecg.modules.mdc.service.IControlSystemService; -import org.jeecg.modules.mdc.service.IEquipmentWorkLineService; -import org.jeecg.modules.mdc.service.IMdcDriveTypeParamConfigService; -import org.jeecg.modules.mdc.service.IMdcEquipmentService; +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; @@ -34,15 +32,15 @@ import org.jeecg.modules.system.entity.SysDepart; import org.jeecg.modules.system.mapper.MdcEquipmentDepartMapper; import org.jeecg.modules.system.mapper.MdcProductionEquipmentMapper; -import org.jeecg.modules.system.service.IMdcProductionService; -import org.jeecg.modules.system.service.IMdcUserProductionService; -import org.jeecg.modules.system.service.ISysDepartService; -import org.jeecg.modules.system.service.ISysUserDepartService; +import org.jeecg.modules.system.service.*; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; 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; @@ -74,14 +72,21 @@ private IEquipmentWorkLineService equipmentWorkLineService; @Resource private IMdcDriveTypeParamConfigService mdcDriveTypeParamConfigService; -// @Resource -// private XYZAliasesMapper xyzAliasesMapper; -// @Resource -// private IEquipmentXYZService equipmentXYZService; -// @Resource -// private IEquipmentBaseInfoService equipmentBaseInfoService; -// @Resource -// private IEquipmentTemperatureService equipmentTemperatureService; + @Resource + private MdcTorqueConfigMapper mdcTorqueConfigMapper; + + @Resource + private IEquipmentLogService equipmentLogService; + + @Resource + private IEquipmentBaseInfoService equipmentBaseInfoService; + + @Resource + private ISysDictService sysDictService; + + @Resource + private ISysBaseAPI sysBaseApi; + @Override public Map<String, String> getDepNamesByEquipmentIds(List<String> equipmentIds) { @@ -363,6 +368,9 @@ mdcEquipmentDto.setDataPort(mdcEquipment.getDataPort()); mdcEquipmentDto.setDataFlag(Integer.parseInt(CommonConstant.STATUS_1)); ControlSystem controlSystem = controlSystemService.getByDriveType(mdcEquipmentDto.getDriveType()); + // 鏌ヨ璁惧鐘舵�� + Integer oporation = equipmentLogService.selectEquipmentOporation(mdcEquipment.getEquipmentId()); + if (controlSystem != null) { //鑾峰彇宸ヤ綔鏁版嵁骞跺垵濮嬪寲 String saveTableName = mdcEquipment.getSaveTableName(); @@ -378,6 +386,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()); @@ -390,6 +407,39 @@ 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 { value = result == null ? null : result.toString(); } @@ -397,71 +447,12 @@ } mdcEquipmentDto.setMdcDriveTypeParamConfigList(mdcDriveTypeParamList); } + EquipmentBaseInfo equipmentBaseInfo = equipmentBaseInfoService.getByEquipmentId(mdcEquipment.getEquipmentId()); + if (equipmentBaseInfo != null) { + mdcEquipmentDto.setMaxAxis(equipmentBaseInfo.getMaxAxis()); + mdcEquipmentDto.setValidAxis(equipmentBaseInfo.getValidAxis()); + } } -// // 璁惧鍧愭爣鏁� 鑾峰彇璁惧闇�瑕侀噰闆嗙殑鍧愭爣淇℃伅 -// 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); -// } -// 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; } @@ -708,4 +699,92 @@ return this.baseMapper.getEquipmentByWorkshopId(page, workshopEquipmentVo); } + @Override + public List<String> listEquipmentId(String equipmentType, List<String> equipmentIdList) { + 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(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); + // 鑾峰彇瀛楀吀鏁版嵁 + List<DictModel> dictModelList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_OPERATING_SPEED_RANGE); + Integer range = 0; + if (dictModelList != null && !dictModelList.isEmpty()) { + range = Integer.valueOf(dictModelList.get(0).getValue()); + } + for (MdcEquipment mdcEquipment : equipmentList) { + String saveTableName = mdcEquipment.getSaveTableName(); + //鏌ヨ鍗曡〃鏁版嵁 + MdcEquipmentDto mdcEquipmentDto = this.baseMapper.getWorkLineLast(saveTableName); + if (mdcEquipmentDto != null) { + MessageDTO messageDTO = new MessageDTO(); + messageDTO.setTitle("璁惧杩愯杞�熸姤璀︼紒"); + messageDTO.setCategory("棰勮娑堟伅"); + messageDTO.setFromUser("admin"); + messageDTO.setToUser("admin"); + Integer spindlespeed = Integer.valueOf(mdcEquipmentDto.getSpindlespeed()); + Integer actualspindlespeed = Integer.valueOf(mdcEquipmentDto.getActualspindlespeed()); + if (range.equals(0)) { + if (spindlespeed > actualspindlespeed) { + // 瀹為檯鍊煎ぇ浜庤瀹氬�� 楂� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } else if (spindlespeed < actualspindlespeed) { + // 瀹為檯鍊煎皬浜庤瀹氬�� 浣� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + } else { + int max = actualspindlespeed + actualspindlespeed * (range / 100); + int min = actualspindlespeed - actualspindlespeed * (range / 100); + if (spindlespeed > max || spindlespeed < min) { + if (spindlespeed > actualspindlespeed) { + // 瀹為檯鍊煎ぇ浜庤瀹氬�� 楂� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熼珮鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } else if (spindlespeed < actualspindlespeed) { + // 瀹為檯鍊煎皬浜庤瀹氬�� 浣� + messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶囪繍琛岃浆閫熶綆鎶ヨ锛�"); + sysBaseApi.sendSysAnnouncement(messageDTO); + } + } + } + + } + } + + } + + /** + * 瀵煎嚭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); + } + } -- Gitblit v1.9.3