From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期五, 11 十月 2024 08:39:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java | 232 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 213 insertions(+), 19 deletions(-) diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java index 865c54c..d9c9bab 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java @@ -1,50 +1,244 @@ package com.mes.downworkstation.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.query.MPJQueryWrapper; +import com.mes.common.S7object; +import com.mes.common.utils.RedisUtil; +import com.mes.damage.entity.Damage; +import com.mes.damage.service.DamageService; +import com.mes.device.PlcParameterObject; +import com.mes.downglassinfo.entity.DownGlassInfo; +import com.mes.downglassinfo.mapper.DownGlassInfoMapper; import com.mes.downworkstation.entity.DownWorkstation; +import com.mes.downworkstation.entity.DownWorkstationTask; +import com.mes.downworkstation.entity.DownWorkstionAndDownGlassinfo; import com.mes.downworkstation.mapper.DownWorkstationMapper; +import com.mes.downworkstation.mapper.DownWorkstationTaskMapper; import com.mes.downworkstation.service.DownWorkstationService; +import com.mes.downworkstation.service.DownWorkstationTaskService; +import com.mes.glassinfo.service.GlassInfoService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +@Slf4j @Service public class DownWorkstationServiceImpl extends ServiceImpl<DownWorkstationMapper, DownWorkstation> implements DownWorkstationService { @Autowired private DownWorkstationMapper downWorkstationMapper; + @Autowired(required = false) + private DownWorkstationTaskMapper downWorkstationTaskMapper; + @Autowired + private DownGlassInfoMapper downGlassInfoMapper; + @Autowired + private GlassInfoService glassInfoService; + @Autowired + private DamageService damageservice; - @Override - public List<DownWorkstation> getoneDownWorkstations() { - return downWorkstationMapper.getoneDownWorkstations(); - } + @Autowired + private DownWorkstationTaskService downWorkstationTaskService; + @Resource + private RedisUtil redisUtil; - @Override - public List<DownWorkstation> gettwoDownWorkstations() { - return downWorkstationMapper.gettwoDownWorkstations(); - } - - @Override - public List<Map<String, Object>> getflowCardId() { - return downWorkstationMapper.getflowCardId(); - } - + // @Override +// public List<DownWorkstation> gettwoDownWorkstations() { +// return downWorkstationMapper.getDownWorkstationsInRange(6,10); +// } +//鑾峰彇鎬绘暟閲� @Override public int getTotalQuantity(int workstationId) { - Integer totalQuantity = downWorkstationMapper.getTotalQuantity(workstationId); - return totalQuantity != null ? totalQuantity : 0; + DownWorkstation result = baseMapper.selectOne(new QueryWrapper<DownWorkstation>().lambda() + .select(DownWorkstation::getTotalQuantity) + .eq(DownWorkstation::getWorkstationId, workstationId)); + + return result != null ? result.getTotalQuantity() : 0; } + + //宸ヤ綅鏄剧ず + @Override + public List<Map<String, Object>> getTotalGlassDimensionsByWorkstation(int start, int end) { + MPJQueryWrapper<DownWorkstation> queryWrapper = new MPJQueryWrapper<>(); + queryWrapper.select("t.workstation_id", "t.flow_card_id", "COALESCE(SUM(b.width), 0) AS totalwidth", "COALESCE(SUM(b.height), 0) AS totalheight,total_quantity,racks_number,other_number") + .leftJoin("down_glass_info b on t.flow_card_id = b.flow_card_id") + .groupBy("t.workstation_id", "t.flow_card_id") + .orderByAsc("t.workstation_id").between("t.workstation_id", start, end) + + ; + + List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper); + // List<DownWorkstionAndDownGlassinfo> workstationList = null; + List<Map<String, Object>> result = new ArrayList<>(); + for (DownWorkstionAndDownGlassinfo downWorkstionAndDownGlassinfo : workstationList) { + Map<String, Object> rack = new HashMap<>(); + Map<String, Object> item = new HashMap<>(); + item.put("height", downWorkstionAndDownGlassinfo.getTotalheight()); + item.put("width", downWorkstionAndDownGlassinfo.getTotalwidth()); + item.put("fillColor", "yellow"); + item.put("content", downWorkstionAndDownGlassinfo.getFlowCardId()); + if (downWorkstionAndDownGlassinfo.getFlowCardId() != "" && downWorkstionAndDownGlassinfo.getFlowCardId() != null && downWorkstionAndDownGlassinfo.getTotalQuantity() == downWorkstionAndDownGlassinfo.getRacksNumber() + downWorkstionAndDownGlassinfo.getRacksNumber()) { + item.put("fullCardColor", "red"); + } else { + item.put("fullCardColor", "blue"); + } + + // 鏌ヨ DownGlassInfo 骞舵坊鍔犲埌 item 涓� + MPJQueryWrapper<DownGlassInfo> glassInfoQueryWrapper = new MPJQueryWrapper<>(); + glassInfoQueryWrapper.select("*"); // 鏌ヨ鎵�鏈夊垪 + glassInfoQueryWrapper.eq("flow_card_id", downWorkstionAndDownGlassinfo.getFlowCardId()); + List<DownGlassInfo> downGlassInfoList = downGlassInfoMapper.selectList(glassInfoQueryWrapper); + + + if (!downGlassInfoList.isEmpty()) { + + item.put("downGlassInfoList", downGlassInfoList); + + } + + rack.put("item", item); + result.add(rack); + } + log.info("result" + (result)); + return result; // 杩斿洖鏈�缁堢粨鏋� + } + + + //鏍规嵁鏉′欢鑾峰彇钀芥灦鏁伴噺 @Override public int getRacksNumber(int workstationId) { - Integer racksNumber = downWorkstationMapper.getRacksNumber(workstationId); - return racksNumber != null ? racksNumber : 0; + QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>(); + queryWrapper.select("racks_number") + .eq("workstation_id", workstationId); + + DownWorkstation result = baseMapper.selectOne(queryWrapper); + return result != null ? result.getRacksNumber() : 0; + } + + //鏍规嵁鏉′欢鑾峰彇宸ヤ綅鐜荤拑淇℃伅 + @Override + public List<DownWorkstation> getoneDownWorkstations(int startId, int endId) { + QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>(); + queryWrapper.between("workstation_id", startId, endId); + + return baseMapper.selectList(queryWrapper); + } + + +// + + + @Override + public void updateracksnumber(String flowCardId, int racksNumber) { + UpdateWrapper<DownWorkstation> updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("racks_number", racksNumber).eq("flow_card_id", flowCardId); + baseMapper.update(new DownWorkstation(), updateWrapper); + } + + + @Override + public void updateFlowCardIdAndCount(String flowCardId, int workstationId, int layer) { + int glassInfoCount = glassInfoService.getGlassInfoCountByFlowCardId(flowCardId, layer); + QueryWrapper<Damage> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("process_id", flowCardId); + queryWrapper.eq("technology_number", layer); + int otherNumber = damageservice.count(queryWrapper); + UpdateWrapper<DownWorkstation> updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("total_quantity", glassInfoCount) + .set("flow_card_id", flowCardId) + .set("layer", layer) + .set("other_number", otherNumber) + .eq("workstation_id", workstationId); +// .eq("id", workstationId); + this.update(updateWrapper); + } @Override public void clearFlowCardId(int workstationId) { - downWorkstationMapper.clearFlowCardInfoByWorkstationId(workstationId); + UpdateWrapper<DownWorkstation> updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("flow_card_id", null) + .set("total_quantity", 0) + .set("racks_number", 0) + .set("other_number", 0) + .set("layer", null) + .eq("workstation_id", workstationId); + + baseMapper.update(new DownWorkstation(), updateWrapper); } + + + @Override + public DownWorkstation selectByFlowCardId(String flowcardid) { + QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("flow_card_id", flowcardid); + + return baseMapper.selectOne(queryWrapper); + } + + + @Transactional + public void crossDatabaseQuery() { + // 浠� MySQL 鏁版嵁搴撲腑鏌ヨ鏁版嵁锛屽彧杩斿洖涓�鏉$鍚堟潯浠剁殑鏁版嵁 + DownWorkstation downWorkstation = downWorkstationTaskMapper.selectdownWorkstationstate(); + + // 浠� SQL Server 鏁版嵁搴撲腑鏌ヨ鏁版嵁 + List<DownWorkstationTask> downWorkstationTasks = downWorkstationTaskMapper.selectList(); + + } + + + @Override + public boolean updateDownWorkstationstate(DownWorkstation downWorkstation) { + + DownWorkstation downWork = baseMapper.selectById(downWorkstation.getId()); + + if (downWork != null) { + + downWork.setEnableState(downWorkstation.getEnableState()); + + baseMapper.updateById(downWork); + + return true; + } else { + + return false; + } + } + + @Override + public String closeAlarmSignal() { + PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; + S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("alarm_signal").getAddress(), 0); + return "success"; + } + + @Override + public void autoPrint(Boolean flag) { + redisUtil.setCacheObject("autoPrint", flag); + } + + @Override + public void insertDownWorkstation() { + DownWorkstation downWorkstation = new DownWorkstation(); + downWorkstation.setWorkstationId(7); + downWorkstation.setTotalQuantity(0); + downWorkstation.setRacksNumber(0); + downWorkstation.setOtherNumber(0); + downWorkstation.setDeviceId(3); + downWorkstation.setEnableState(1); + downWorkstation.setWorkState(1); + baseMapper.insert(downWorkstation); + } + + } -- Gitblit v1.8.0