qiangxuan 5 сар өмнө
parent
commit
b83fc10df1

+ 15 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/controller/StorageBillController.java

@@ -34,6 +34,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 钢坯装运单
@@ -294,4 +295,18 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 		storageBillService.departHandle(billetHotsendDetailsVo);
 		return Result.OK("发车成功");
 	}
+
+	@ApiOperation(value="钢坯车辆运行记录看板", notes="钢坯车辆运行记录看板")
+	@GetMapping(value = "/carRunRecordByCcmNo")
+	public Result<List<Map<String, Object>>> carRunRecordHandle(){
+		List<Map<String, Object>> result = storageBillService.carRunRecordHandle();
+		return Result.OK(result);
+	}
+
+	@ApiOperation(value="钢坯运行数据汇总-通过铸机查询", notes="钢坯运行数据汇总-通过铸机查询")
+	@GetMapping(value = "/queryRunSummaryByCcmNo")
+	public Result<Map<String, Object>> queryRunSummaryByCcmNoHandle(@RequestParam(name="ccmNo") String ccmNo) {
+		Map<String, Object> result = storageBillService.queryRunSummaryByCcmNoHandle(ccmNo);
+		return Result.OK(result);
+	}
 }

+ 5 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/IStorageBillService.java

@@ -8,6 +8,7 @@ import org.jeecg.modules.billet.storageBill.entity.GetStatsResponse;
 import org.jeecg.modules.billet.storageBill.entity.StorageBill;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 钢坯装运单
@@ -29,4 +30,8 @@ public interface IStorageBillService extends IService<StorageBill> {
     List<StorageBill> findCar(String ccmNo, String destination);
 
     JSONObject storageBillSave(StorageBill storageBill);
+
+    List<Map<String, Object>> carRunRecordHandle();
+
+    Map<String, Object> queryRunSummaryByCcmNoHandle(String ccmNo);
 }

+ 110 - 4
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java

@@ -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;
+    }
 }