From 4337640b7ab86136baed2fd6aa959e4828a75cea Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 07 十二月 2023 17:33:51 +0800 Subject: [PATCH] 计算加工工件个数算法和密码安全策略 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 102 insertions(+), 5 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java index c140bd4..105c0e6 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.system.vo.DictModel; import org.jeecg.modules.mdc.dto.EquipmentMachingDto; import org.jeecg.modules.mdc.dto.MdcEquipmentRunningSectionDto; import org.jeecg.modules.mdc.entity.*; @@ -10,8 +11,9 @@ import org.jeecg.modules.mdc.service.*; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.TimeFieldUtils; -import org.jeecg.modules.mdc.vo.DayUtilizationRateContrastQueryVo; +import org.jeecg.modules.mdc.vo.MdcAlarmAnalyzeQueryVo; import org.jeecg.modules.mdc.vo.MdcEquipmentRunningSectionVo; +import org.jeecg.modules.system.service.ISysDictService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,6 +41,12 @@ @Resource private IEquipmentWorkLineService equipmentWorkLineService; + + @Resource + private ISysDictService sysDictService; + + @Resource + private IEquipmentRunningTraceService equipmentRunningTraceService; @Override public List<MdcEquipmentRunningSectionDto> logList(MdcEquipmentRunningSectionVo equipmentRunningSectionVo) { @@ -472,9 +480,9 @@ //鑾峰彇running杩愯鐨勬棩蹇楄褰� List<MdcEquipmentRunningSection> list = this.equipmentRunningTracesLog(equipment.getEquipmentid()); if (list != null && !list.isEmpty()) { - //List<MdcEquipmentRunningSection> equipList = addSequenceNumber(list); //娣诲姞绋嬪簭鍙� - this.ergodicTrim(list); - super.saveBatch(list); + List<MdcEquipmentRunningSection> equipList = addSequenceNumber(list); //娣诲姞绋嬪簭鍙� + this.ergodicTrim(equipList); + super.saveBatch(equipList); } //鑾峰彇鎶ヨ鐨勬棩蹇楄褰� List<MdcEquipmentRunningSection> errorList = this.equipmentRunningTracesErrorLog(equipment.getEquipmentid()); @@ -483,7 +491,81 @@ //save errorList super.saveBatch(errorList); } + List<DictModel> dictList = sysDictService.queryDictItemsByCode("data_synchronization_flag"); + if (dictList != null && !dictList.isEmpty() && "0".equals(dictList.get(0).getValue())) { + this.dataSynchronizationHandler(list, errorList); + } } + } + + /** + * 璁惧杩愯鏃ュ織娣诲姞绋嬪簭鍙� + * + * @param list + * @return + */ + public List<MdcEquipmentRunningSection> addSequenceNumber(List<MdcEquipmentRunningSection> list) { + if (list == null || list.size() < 1) { + return Collections.emptyList(); + } + Equipment equip = null; + for (MdcEquipmentRunningSection e : list) { + if (e.getStatus() == 3) { + equip = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentid, e.getEquipmentId())); + if (StringUtils.isNotBlank(equip.getDrivetype()) && equip.getDrivetype().startsWith("FANUC")) { + List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipProgramNum(equip.getDrivetype(), equip.getEquipmentid(), + e.getStartTime(), e.getEndTime()); + if (esList != null && esList.size() > 1) { + e.setSequenceNumber(esList.get(0).getProgramnumber()); + } + } else if (StringUtils.isNotBlank(equip.getDrivetype()) && equip.getDrivetype().startsWith("SIEMENS")) { + List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipmentSequencenumber(equip.getDrivetype() + "_" + equip.getEquipmentid(), e.getStartTime(), e.getEndTime()); + if (esList != null && esList.size() > 1) { + e.setSequenceNumber(esList.get(0).getSequencenumber()); + } + } + } + } + return list; + } + + /** + * 鏁版嵁鍚屾澶勭悊 + * @param list + * @param errorList + */ + private void dataSynchronizationHandler(List<MdcEquipmentRunningSection> list, List<MdcEquipmentRunningSection> errorList) { + // 鏁版嵁杞崲 + List<EquipmentRunningTrace> equipList = new ArrayList<>(); + if (list != null && !list.isEmpty()) { + list.forEach(item -> { + EquipmentRunningTrace equipmentRunningSection = new EquipmentRunningTrace(); + equipmentRunningSection.setEquipment(item.getEquipmentId()); + equipmentRunningSection.setAlarm(item.getAlarm()); + equipmentRunningSection.setCreateTime(item.getCreateTime()); + equipmentRunningSection.setDuration(item.getDuration()); + equipmentRunningSection.setEndTime(item.getEndTime()); + equipmentRunningSection.setStartTime(item.getStartTime()); + equipmentRunningSection.setStatus(item.getStatus()); + equipmentRunningSection.setSequencenumber(item.getSequenceNumber()); + equipList.add(equipmentRunningSection); + }); + } + if (errorList != null && !errorList.isEmpty()) { + errorList.forEach(item -> { + EquipmentRunningTrace equipmentRunningSection = new EquipmentRunningTrace(); + equipmentRunningSection.setEquipment(item.getEquipmentId()); + equipmentRunningSection.setAlarm(item.getAlarm()); + equipmentRunningSection.setCreateTime(item.getCreateTime()); + equipmentRunningSection.setDuration(item.getDuration()); + equipmentRunningSection.setEndTime(item.getEndTime()); + equipmentRunningSection.setStartTime(item.getStartTime()); + equipmentRunningSection.setStatus(item.getStatus()); + equipmentRunningSection.setSequencenumber(item.getSequenceNumber()); + equipList.add(equipmentRunningSection); + }); + } + equipmentRunningTraceService.saveBatch(equipList); } /** @@ -590,10 +672,25 @@ } @Override - public List<MdcEquipmentRunningSection> findAlarmList(DayUtilizationRateContrastQueryVo vo) { + public List<MdcEquipmentRunningSection> findAlarmList(MdcAlarmAnalyzeQueryVo vo) { return this.baseMapper.findAlarmList(vo); } + @Override + public Integer findAlarmCount(String equipmentId, String startDate, String endDate, String alarmCode) { + return this.baseMapper.findAlarmCount(equipmentId, startDate, endDate, alarmCode); + } + + @Override + public Integer findAlarmCountByDate(String startDate, String endDate, MdcAlarmAnalyzeQueryVo vo) { + return this.baseMapper.findAlarmCountByDate(startDate, endDate, vo); + } + + @Override + public List<MdcEquipmentRunningSection> selectRunningData(String equipmentId, Date startDate, Date endDate) { + return this.baseMapper.selectRunningData(equipmentId, startDate, endDate); + } + private Map<String, List<MdcEquipmentRunningSectionDto>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo, String date) { Map<String, List<MdcEquipmentRunningSectionDto>> map = new HashMap<>(); List<MdcEquipmentRunningSectionDto> normal = new ArrayList<>(); -- Gitblit v1.9.3