| | |
| | | import com.github.yulichang.base.MPJBaseServiceImpl; |
| | | import com.github.yulichang.toolkit.JoinWrappers; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import com.google.common.collect.Lists; |
| | | import com.mes.base.entity.vo.BigStorageVO; |
| | | import com.mes.bigstorage.entity.BigStorageCage; |
| | | import com.mes.bigstorage.entity.BigStorageCageDetails; |
| | |
| | | import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; |
| | | import com.mes.bigstorage.service.BigStorageCageDetailsService; |
| | | import com.mes.bigstorage.service.BigStorageCageService; |
| | | import com.mes.bigstoragecagetask.entity.BigStorageCageHistoryTask; |
| | | import com.mes.bigstoragecagetask.service.BigStorageCageHistoryTaskService; |
| | | import com.mes.bigstoragetask.entity.BigStorageCageFeedTask; |
| | | import com.mes.bigstoragetask.entity.BigStorageCageOutTask; |
| | | import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO; |
| | |
| | | private DamageService damageService; |
| | | @Resource |
| | | private RedisUtil redisUtil; |
| | | |
| | | @Resource |
| | | BigStorageCageHistoryTaskService bigStorageCageHistoryTaskService; |
| | | |
| | | @Value("${mes.minCount}") |
| | | private int minCount; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<BigStorageVO> querybigStorageCageDetail() { |
| | | return baseMapper.querybigStorageCageDetail(); |
| | | public Map<Integer, List<BigStorageVO>> querybigStorageCageDetail() { |
| | | List<BigStorageVO> bigStorageCages = baseMapper.querybigStorageCageDetail(); |
| | | return bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId())); |
| | | } |
| | | |
| | | @Override |
| | | public boolean cancelTemperingTask() { |
| | | //当前正在执行的出片任务 |
| | | List<BigStorageCageHistoryTask> historyTaskList = bigStorageCageHistoryTaskService.list(new LambdaQueryWrapper<BigStorageCageHistoryTask>() |
| | | .eq(BigStorageCageHistoryTask::getTaskState, Const.GLASS_STATE_NEW) |
| | | .eq(BigStorageCageHistoryTask::getTargetSlot, Const.TEMPERING_OUT_TARGET_POSITION)); |
| | | //不存在出片任务,直接删除钢化小片表未出片的任务 |
| | | if (CollectionUtils.isEmpty(historyTaskList)) { |
| | | temperingGlassInfoMapper.delete(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)); |
| | | return Boolean.TRUE; |
| | | } |
| | | //存在出片任务,删除钢化小片表 |
| | | List<String> glassIdList = historyTaskList.stream().map(BigStorageCageHistoryTask::getGlassId).collect(Collectors.toList()); |
| | | GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIdList) |
| | | .orderByDesc(GlassInfo::getTemperingFeedSequence).last("limit 1")); |
| | | temperingGlassInfoMapper.delete(new LambdaQueryWrapper<TemperingGlassInfo>() |
| | | .eq(TemperingGlassInfo::getEngineerId, glassInfo.getEngineerId()) |
| | | .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW) |
| | | .ge(TemperingGlassInfo::getTemperingLayoutId, glassInfo.getTemperingLayoutId()) |
| | | .gt(TemperingGlassInfo::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence()) |
| | | ); |
| | | return Boolean.TRUE; |
| | | } |
| | | |
| | | @Override |
| | |
| | | .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence) |
| | | ); |
| | | if (CollectionUtils.isNotEmpty(temperingGlassInfos)) { |
| | | temperingGlassInfoService.saveBatch(temperingGlassInfos); |
| | | //避免大量数据插入导致sqlserver数据库异常,分批次每调存储依次 |
| | | List<List<TemperingGlassInfo>> temperingGlassInfoLists = Lists.partition(temperingGlassInfos, 50); |
| | | for (List<TemperingGlassInfo> item : temperingGlassInfoLists) { |
| | | temperingGlassInfoService.saveBatch(item); |
| | | } |
| | | return true; |
| | | } |
| | | } |