|
@@ -3,6 +3,7 @@ package org.jeecg.modules.billet.storageBill.service.impl;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.google.common.collect.Maps;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.jeecg.common.util.DateUtils;
|
|
|
import org.jeecg.common.util.oConvertUtils;
|
|
@@ -28,15 +29,16 @@ import org.jeecg.modules.billet.rollOutShipp.service.IRollOutShippDetailsService
|
|
|
import org.jeecg.modules.billet.storageBill.entity.*;
|
|
|
import org.jeecg.modules.billet.storageBill.mapper.StorageBillMapper;
|
|
|
import org.jeecg.modules.billet.storageBill.service.IStorageBillService;
|
|
|
-import org.jeecg.modules.billet.storageCarLog.service.IStorageCarLogService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -55,9 +57,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
@Autowired
|
|
|
private StorageBillMapper storageBillMapper;
|
|
|
|
|
|
- @Autowired
|
|
|
- private IStorageCarLogService storageCarLogService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private IRollClubOneDetailsService rollClubOneDetailsService;
|
|
|
|
|
@@ -253,4 +252,111 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> carRunRecordHandle() {
|
|
|
+ List<Map<String, Object>> result = new ArrayList<>();
|
|
|
+ String keyShiftGroupsix = String.format("class:shift:group:%s", "6");
|
|
|
+ String keyShiftsix = String.format("class:shift:%s", "6");
|
|
|
+
|
|
|
+ String sixShiftGroup = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShiftGroupsix));
|
|
|
+ String sixShift = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShiftsix));
|
|
|
+
|
|
|
+ String keyShiftGroupfive = String.format("class:shift:group:%s", "5");
|
|
|
+ String keyShiftfive = String.format("class:shift:%s", "5");
|
|
|
+
|
|
|
+ String fiveShiftGroup = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShiftGroupfive));
|
|
|
+ String fiveShift = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShiftfive));
|
|
|
+
|
|
|
+ LambdaQueryWrapper<StorageBill> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(StorageBill::getCcmNo, "6")
|
|
|
+ .eq(StorageBill::getShift, sixShift)
|
|
|
+ .eq(StorageBill::getShiftGroup, sixShiftGroup)
|
|
|
+ .ne(StorageBill::getLicensePlate, "辊道")
|
|
|
+ .between(StorageBill::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay())
|
|
|
+ .isNull(StorageBill::getOutTime)
|
|
|
+ .orderByDesc(StorageBill::getCreateTime);
|
|
|
+ // 使用or来拼接以5为条件的部分
|
|
|
+ if (oConvertUtils.isNotEmpty(fiveShiftGroup) && oConvertUtils.isNotEmpty(fiveShift)) {
|
|
|
+ queryWrapper.or(wrapper -> wrapper
|
|
|
+ .eq(StorageBill::getCcmNo, "5")
|
|
|
+ .eq(StorageBill::getShift, fiveShift)
|
|
|
+ .eq(StorageBill::getShiftGroup, fiveShiftGroup)
|
|
|
+ .ne(StorageBill::getLicensePlate, "辊道")
|
|
|
+ .between(StorageBill::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay())
|
|
|
+ .isNull(StorageBill::getOutTime)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ List<StorageBill> storageBillList = baseMapper.selectList(queryWrapper);
|
|
|
+
|
|
|
+ storageBillList.forEach(x ->{
|
|
|
+ Map<String, Object> paramMap = Maps.newHashMapWithExpectedSize(16);
|
|
|
+ paramMap.put("licensePlate", x.getLicensePlate());// 车号
|
|
|
+ String finalCurrentAddr = "";
|
|
|
+ if (oConvertUtils.isNotEmpty(x.getDestination())){
|
|
|
+ finalCurrentAddr = x.getCcmNo() + "#机——" + x.getDestination();
|
|
|
+ }else {
|
|
|
+ finalCurrentAddr = x.getCcmNo() + "#机";
|
|
|
+ }
|
|
|
+ paramMap.put("currentAddr", finalCurrentAddr);// 当前位置
|
|
|
+ paramMap.put("spec", x.getSpec());// 规格
|
|
|
+ paramMap.put("size", x.getSize());// 定尺
|
|
|
+ paramMap.put("amountTotal", x.getAmountTotal());// 钢坯总数
|
|
|
+ result.add(paramMap);
|
|
|
+ });
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> queryRunSummaryByCcmNoHandle(String ccmNo) {
|
|
|
+ Map<String, Object> paramMap = Maps.newHashMapWithExpectedSize(16);
|
|
|
+
|
|
|
+ String keyShiftGroup = String.format("class:shift:group:%s", ccmNo);
|
|
|
+ String keyShift = String.format("class:shift:%s", ccmNo);
|
|
|
+ String shiftGroup = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShiftGroup));
|
|
|
+ String shift = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShift));
|
|
|
+
|
|
|
+ LambdaQueryWrapper<StorageBill> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(StorageBill::getCcmNo, ccmNo)
|
|
|
+ .eq(StorageBill::getShift, shift)
|
|
|
+ .eq(StorageBill::getShiftGroup, shiftGroup)
|
|
|
+ .between(StorageBill::getCreateTime, DateUtils.getStartOfDay(), DateUtils.getEndOfDay());
|
|
|
+ List<StorageBill> storageBillList = baseMapper.selectList(queryWrapper);
|
|
|
+
|
|
|
+ Integer amountTotal = storageBillList.stream().map(StorageBill::getAmountTotal)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+ Integer timesTotal = storageBillList.size();
|
|
|
+ Integer hotsendAmount = storageBillList.stream().filter(bill -> "辊道".equals(bill.getLicensePlate())).map(StorageBill::getAmountTotal)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+
|
|
|
+ // 总车次、总支数、班组、班别
|
|
|
+ paramMap.put("timesTotal", timesTotal);
|
|
|
+ paramMap.put("amountTotal", amountTotal);
|
|
|
+ paramMap.put("shiftGroup", shiftGroup);
|
|
|
+ paramMap.put("shift", shift);
|
|
|
+
|
|
|
+ // 轧钢接收、入垛支数、起垛支数、热送支数、热送接收
|
|
|
+ paramMap.put("rollingReceive", 4);// 轧钢接收
|
|
|
+ paramMap.put("inStackAmount", 8);// 入垛支数
|
|
|
+ paramMap.put("outStackAmount", 12);// 起垛支数
|
|
|
+ paramMap.put("hotsendAmount", hotsendAmount);// 热送支数 去高线 或棒1
|
|
|
+ paramMap.put("hotsendReceive", 16);// 热送接收
|
|
|
+
|
|
|
+ // 棒二热装接收、热装车次、棒三热装接收、热装支数、上若热装接收、热装接收
|
|
|
+ paramMap.put("hotTwo", 20);// 棒二热装接收
|
|
|
+ paramMap.put("hotTimes", 24);// 热装车次
|
|
|
+ paramMap.put("hotThree", 28);// 棒三接收
|
|
|
+ paramMap.put("hotAmount", 32);// 热装支数
|
|
|
+ paramMap.put("hotSr", 36);// 上若热装接收
|
|
|
+ paramMap.put("hotReceive", 40);// 热装接收
|
|
|
+
|
|
|
+ // 棒二冷装接收、冷装车次、棒三冷装接收、冷装支数、上若冷装接收、冷装接收
|
|
|
+ paramMap.put("coldTwo", 4);// 棒二冷装接收
|
|
|
+ paramMap.put("coldTimes", 8);// 冷装车次
|
|
|
+ paramMap.put("coldThree", 12);// 棒三冷装接收
|
|
|
+ paramMap.put("coldAmount", 16);// 冷装支数
|
|
|
+ paramMap.put("coldSr", 20);// 上若冷装接收
|
|
|
+ paramMap.put("coldReceive", 24);// 冷装接收
|
|
|
+ return paramMap;
|
|
|
+ }
|
|
|
}
|