Browse Source

新增当班所有装运轧钢接收、起垛支数、热送支数、热装支数信息-车辆运行看板接口

lingpeng.li 2 tháng trước cách đây
mục cha
commit
927c10db3b

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

@@ -1414,6 +1414,34 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 		return Result.OK(result);
 	}
 
+	@ApiOperation(value="当班所有装运轧钢接收信息-车辆运行看板", notes="当班所有装运轧钢接收信息-车辆运行看板")
+	@GetMapping(value = "/queryOnDutySteelReceive")
+	public Result<SteelDetailsVo> queryOnDutySteelReceive(@RequestParam(name="ccmNo") String ccmNo) {
+		SteelDetailsVo result = storageBillService.queryOnDutySteelReceive(ccmNo);
+		return Result.OK(result);
+	}
+
+	@ApiOperation(value="当班所有装运起垛支数信息-车辆运行看板", notes="当班所有装运轧钢接收信息-车辆运行看板")
+	@GetMapping(value = "/queryOnDutyStackingUp")
+	public Result<SteelDetailsVo> queryOnDutyStackingUp(@RequestParam(name="ccmNo") String ccmNo) {
+		SteelDetailsVo result = storageBillService.queryOnDutyStackingUp(ccmNo);
+		return Result.OK(result);
+	}
+
+	@ApiOperation(value="当班所有装运热送支数信息-车辆运行看板", notes="当班所有装运热送支数信息-车辆运行看板")
+	@GetMapping(value = "/queryOnDutyHotSendInfo")
+	public Result<SteelDetailsVo> queryOnDutyHotSendInfo(@RequestParam(name="ccmNo") String ccmNo) {
+		SteelDetailsVo result = storageBillService.queryOnDutyHotSendInfo(ccmNo);
+		return Result.OK(result);
+	}
+
+	@ApiOperation(value="当班所有装运热装支数信息-车辆运行看板", notes="当班所有装运热装支数信息-车辆运行看板")
+	@GetMapping(value = "/queryOnDutyHotChargeInfo")
+	public Result<SteelDetailsVo> queryOnDutyHotChargeInfo(@RequestParam(name="ccmNo") String ccmNo) {
+		SteelDetailsVo result = storageBillService.queryOnDutyHotChargeInfo(ccmNo);
+		return Result.OK(result);
+	}
+
 	/**
 	 * 计算 本车车次
 	 * @param ccmNo

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

@@ -79,4 +79,12 @@ public interface IStorageBillService extends IService<StorageBill> {
     OnDutySteelVo queryOnDutySteel(String ccmNo,String changeShiftId);
 
     JSONObject billetAutoTmpDataSynConfirm(StorageBill bill);
+
+    SteelDetailsVo queryOnDutySteelReceive(String ccmNo);
+
+    SteelDetailsVo queryOnDutyStackingUp(String ccmNo);
+
+    SteelDetailsVo queryOnDutyHotSendInfo(String ccmNo);
+
+    SteelDetailsVo queryOnDutyHotChargeInfo(String ccmNo);
 }

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

@@ -2994,6 +2994,309 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
     }
 
 
+    @Override
+    public SteelDetailsVo queryOnDutySteelReceive(String ccmNo) {
+
+        SteelDetailsVo steelDetailsVo = new SteelDetailsVo();
+
+        String shiftGroup = "";
+        String shift = "";
+        BilletHotsendChangeShift billetHotsendChangeShift;
+
+        // 从 Redis 获取班次信息
+        shiftGroup = getShiftInfo(ccmNo, "class:shift:group:%s");
+        shift = getShiftInfo(ccmNo, "class:shift:%s");
+        // 根据铸机号、缓存中的当前班次,倒序最新一条,获取交班记录中的创建时间
+        LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
+                .eq(BilletHotsendChangeShift::getShift, shift)
+                .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
+                .isNull(BilletHotsendChangeShift::getChangeShiftTime)
+                .orderByDesc(BilletHotsendChangeShift::getCreateTime)
+                .last("limit 1");
+        billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
+        if (billetHotsendChangeShift == null) {
+            log.info("{}{}", "查询当班装运单信息失败,交班记录为空!", ccmNo + "失败时间:" + new Date());
+            return steelDetailsVo;
+        }
+
+
+        // 根据铸机号、班组、班别,amountTotal不等于0 ,查询当班装运单信息
+        LambdaQueryWrapper<StorageBill> billQueryWrapper = new LambdaQueryWrapper<>();
+        billQueryWrapper.eq(StorageBill::getCcmNo, ccmNo)
+                .gt(StorageBill::getAmountTotal, 0);
+
+        //时间范围从 createTime 到当前时间
+        billQueryWrapper.between(StorageBill::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
+
+        List<StorageBill> storageBillList = baseMapper.selectList(billQueryWrapper);
+
+        // 提取 id 集合
+        List<String> idList = storageBillList.stream()
+                .map(StorageBill::getId)
+                .filter(Objects::nonNull) // 过滤掉 null 值,避免 NPE
+                .collect(Collectors.toList());
+
+        if (oConvertUtils.listIsEmpty(storageBillList)) {
+            log.info("{}{}", "查询当班装运单信息为空!", ccmNo);
+        }
+
+        // 根据铸机号、班组、班别、创建时间 查询垛位起剁明细表
+        LambdaQueryWrapper<StackingUpLog> stackingUpLogQueryWrapper = new LambdaQueryWrapper<>();
+        stackingUpLogQueryWrapper.eq(StackingUpLog::getCcmNo, ccmNo);
+
+        stackingUpLogQueryWrapper.between(StackingUpLog::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
+
+        List<StackingUpLog> stackingUpLogList = stackingUpLogService.list(stackingUpLogQueryWrapper);
+        if (oConvertUtils.listIsNotEmpty(stackingUpLogList)) {
+
+            steelDetailsVo.setStackingDownLogList(stackingUpLogList);
+        }
+
+        // 根据铸机号、班组、班别、时间范围。查询棒一明细表
+        LambdaQueryWrapper<RollClubOneDetails> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(RollClubOneDetails::getCcmNo, ccmNo)
+                .eq(RollClubOneDetails::getShift, shift)
+                .eq(RollClubOneDetails::getShiftGroup, shiftGroup)
+                .between(RollClubOneDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
+
+        List<RollClubOneDetails> rollClubOneDetailsList = rollClubOneDetailsService.list(queryWrapper1);
+        if (oConvertUtils.listIsNotEmpty(rollClubOneDetailsList)) {
+
+            steelDetailsVo.setRollClubOneDetailsList(rollClubOneDetailsList);
+        }
+
+        // 根据铸机号、班组、班别、时间范围。查询棒二明细表
+        LambdaQueryWrapper<RollClubTwoDetails> queryWrapper2 = new LambdaQueryWrapper<>();
+        queryWrapper2.eq(RollClubTwoDetails::getCcmNo, ccmNo)
+                .in(RollClubTwoDetails::getStorageBillId, idList);
+
+        List<RollClubTwoDetails> rollClubTwoDetailsList = rollClubTwoDetailsService.list(queryWrapper2);
+        if (oConvertUtils.listIsNotEmpty(rollClubTwoDetailsList)) {
+
+            steelDetailsVo.setRollClubTwoDetailsList(rollClubTwoDetailsList);
+
+        }
+
+        // 根据铸机号、班组、班别、时间范围。查询棒三明细表
+        LambdaQueryWrapper<RollClubThreeDetails> queryWrapper3 = new LambdaQueryWrapper<>();
+        queryWrapper3.eq(RollClubThreeDetails::getCcmNo, ccmNo)
+                .in(RollClubThreeDetails::getStorageBillId, idList);
+
+        List<RollClubThreeDetails> rollClubThreeDetailsList = rollClubThreeDetailsService.list(queryWrapper3);
+        if (oConvertUtils.listIsNotEmpty(rollClubThreeDetailsList)) {
+
+            steelDetailsVo.setRollClubThreeDetailsList(rollClubThreeDetailsList);
+        }
+
+        // 根据铸机号、班组、班别、时间范围。查询高线明细表
+        LambdaQueryWrapper<RollHeightDetails> queryWrapper4 = new LambdaQueryWrapper<>();
+        queryWrapper4.eq(RollHeightDetails::getCcmNo, ccmNo)
+                .eq(RollHeightDetails::getShift, shift)
+                .eq(RollHeightDetails::getShiftGroup, shiftGroup)
+                .between(RollHeightDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
+
+        List<RollHeightDetails> rollHeightDetailsList = rollHeightDetailsService.list(queryWrapper4);
+        if (oConvertUtils.listIsNotEmpty(rollHeightDetailsList)) {
+
+            steelDetailsVo.setRollHeightDetails(rollHeightDetailsList);
+        }
+
+        // 根据铸机号、班组、班别、时间范围。查询上若明细表
+        LambdaQueryWrapper<RollOutShippDetails> queryWrapper5 = new LambdaQueryWrapper<>();
+        queryWrapper5.eq(RollOutShippDetails::getCcmNo, ccmNo)
+                .in(RollOutShippDetails::getStorageBillId, idList);
+
+        List<RollOutShippDetails> rollOutShippDetailsList = rollOutShippDetailsService.list(queryWrapper5);
+        if (oConvertUtils.listIsNotEmpty(rollOutShippDetailsList)) {
+
+            steelDetailsVo.setRollOutShippDetailsList(rollOutShippDetailsList);
+        }
+
+        return steelDetailsVo;
+    }
+
+    @Override
+    public SteelDetailsVo queryOnDutyStackingUp(String ccmNo) {
+        SteelDetailsVo steelDetailsVo = new SteelDetailsVo();
+
+        String shiftGroup = "";
+        String shift = "";
+        BilletHotsendChangeShift billetHotsendChangeShift;
+
+        // 从 Redis 获取班次信息
+        shiftGroup = getShiftInfo(ccmNo, "class:shift:group:%s");
+        shift = getShiftInfo(ccmNo, "class:shift:%s");
+        // 根据铸机号、缓存中的当前班次,倒序最新一条,获取交班记录中的创建时间
+        LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
+                .eq(BilletHotsendChangeShift::getShift, shift)
+                .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
+                .isNull(BilletHotsendChangeShift::getChangeShiftTime)
+                .orderByDesc(BilletHotsendChangeShift::getCreateTime)
+                .last("limit 1");
+        billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
+        if (billetHotsendChangeShift == null) {
+            log.info("{}{}", "查询当班装运单信息失败,交班记录为空!", ccmNo + "失败时间:" + new Date());
+            return steelDetailsVo;
+        }
+
+        // 根据铸机号、班组、班别、创建时间 查询垛位起剁明细表
+        LambdaQueryWrapper<StackingUpLog> stackingUpLogQueryWrapper = new LambdaQueryWrapper<>();
+        stackingUpLogQueryWrapper.eq(StackingUpLog::getCcmNo, ccmNo);
+
+        stackingUpLogQueryWrapper.between(StackingUpLog::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
+
+        List<StackingUpLog> stackingUpLogList = stackingUpLogService.list(stackingUpLogQueryWrapper);
+        if (oConvertUtils.listIsNotEmpty(stackingUpLogList)) {
+
+            steelDetailsVo.setStackingDownLogList(stackingUpLogList);
+        }
+
+        return steelDetailsVo;
+    }
+
+    @Override
+    public SteelDetailsVo queryOnDutyHotSendInfo(String ccmNo) {
+        SteelDetailsVo steelDetailsVo = new SteelDetailsVo();
+
+        String shiftGroup = "";
+        String shift = "";
+        BilletHotsendChangeShift billetHotsendChangeShift;
+
+        // 从 Redis 获取班次信息
+        shiftGroup = getShiftInfo(ccmNo, "class:shift:group:%s");
+        shift = getShiftInfo(ccmNo, "class:shift:%s");
+        // 根据铸机号、缓存中的当前班次,倒序最新一条,获取交班记录中的创建时间
+        LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
+                .eq(BilletHotsendChangeShift::getShift, shift)
+                .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
+                .isNull(BilletHotsendChangeShift::getChangeShiftTime)
+                .orderByDesc(BilletHotsendChangeShift::getCreateTime)
+                .last("limit 1");
+        billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
+        if (billetHotsendChangeShift == null) {
+            log.info("{}{}", "查询当班装运单信息失败,交班记录为空!", ccmNo + "失败时间:" + new Date());
+            return steelDetailsVo;
+        }
+
+        // 根据铸机号、班组、班别、时间范围。查询棒一明细表
+        LambdaQueryWrapper<RollClubOneDetails> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(RollClubOneDetails::getCcmNo, ccmNo)
+                .eq(RollClubOneDetails::getShift, shift)
+                .eq(RollClubOneDetails::getShiftGroup, shiftGroup)
+                .between(RollClubOneDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
+
+        List<RollClubOneDetails> rollClubOneDetailsList = rollClubOneDetailsService.list(queryWrapper1);
+        if (oConvertUtils.listIsNotEmpty(rollClubOneDetailsList)) {
+
+            steelDetailsVo.setRollClubOneDetailsList(rollClubOneDetailsList);
+        }
+
+        // 根据铸机号、班组、班别、时间范围。查询高线明细表
+        LambdaQueryWrapper<RollHeightDetails> queryWrapper4 = new LambdaQueryWrapper<>();
+        queryWrapper4.eq(RollHeightDetails::getCcmNo, ccmNo)
+                .eq(RollHeightDetails::getShift, shift)
+                .eq(RollHeightDetails::getShiftGroup, shiftGroup)
+                .between(RollHeightDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
+
+        List<RollHeightDetails> rollHeightDetailsList = rollHeightDetailsService.list(queryWrapper4);
+        if (oConvertUtils.listIsNotEmpty(rollHeightDetailsList)) {
+
+            steelDetailsVo.setRollHeightDetails(rollHeightDetailsList);
+        }
+
+        return steelDetailsVo;
+    }
+
+    @Override
+    public SteelDetailsVo queryOnDutyHotChargeInfo(String ccmNo) {
+        SteelDetailsVo steelDetailsVo = new SteelDetailsVo();
+
+        String shiftGroup = "";
+        String shift = "";
+        BilletHotsendChangeShift billetHotsendChangeShift;
+
+        // 从 Redis 获取班次信息
+        shiftGroup = getShiftInfo(ccmNo, "class:shift:group:%s");
+        shift = getShiftInfo(ccmNo, "class:shift:%s");
+        // 根据铸机号、缓存中的当前班次,倒序最新一条,获取交班记录中的创建时间
+        LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
+                .eq(BilletHotsendChangeShift::getShift, shift)
+                .eq(BilletHotsendChangeShift::getShiftGroup, shiftGroup)
+                .isNull(BilletHotsendChangeShift::getChangeShiftTime)
+                .orderByDesc(BilletHotsendChangeShift::getCreateTime)
+                .last("limit 1");
+        billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
+        if (billetHotsendChangeShift == null) {
+            log.info("{}{}", "查询当班装运单信息失败,交班记录为空!", ccmNo + "失败时间:" + new Date());
+            return steelDetailsVo;
+        }
+
+
+        // 根据铸机号、班组、班别,amountTotal不等于0 ,查询当班装运单信息
+        LambdaQueryWrapper<StorageBill> billQueryWrapper = new LambdaQueryWrapper<>();
+        billQueryWrapper.eq(StorageBill::getCcmNo, ccmNo)
+                .gt(StorageBill::getAmountTotal, 0);
+
+        //时间范围从 createTime 到当前时间
+        billQueryWrapper.between(StorageBill::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
+
+        List<StorageBill> storageBillList = baseMapper.selectList(billQueryWrapper);
+
+        // 提取 id 集合
+        List<String> idList = storageBillList.stream()
+                .map(StorageBill::getId)
+                .filter(Objects::nonNull) // 过滤掉 null 值,避免 NPE
+                .collect(Collectors.toList());
+
+        if (oConvertUtils.listIsEmpty(storageBillList)) {
+            log.info("{}{}", "查询当班装运单信息为空!", ccmNo);
+            return steelDetailsVo;
+        }
+
+
+        // 根据铸机号、班组、班别、时间范围。查询棒二明细表
+        LambdaQueryWrapper<RollClubTwoDetails> queryWrapper2 = new LambdaQueryWrapper<>();
+        queryWrapper2.eq(RollClubTwoDetails::getCcmNo, ccmNo)
+                .in(RollClubTwoDetails::getStorageBillId, idList);
+
+        List<RollClubTwoDetails> rollClubTwoDetailsList = rollClubTwoDetailsService.list(queryWrapper2);
+        if (oConvertUtils.listIsNotEmpty(rollClubTwoDetailsList)) {
+
+            steelDetailsVo.setRollClubTwoDetailsList(rollClubTwoDetailsList);
+
+        }
+
+        // 根据铸机号、班组、班别、时间范围。查询棒三明细表
+        LambdaQueryWrapper<RollClubThreeDetails> queryWrapper3 = new LambdaQueryWrapper<>();
+        queryWrapper3.eq(RollClubThreeDetails::getCcmNo, ccmNo)
+                .in(RollClubThreeDetails::getStorageBillId, idList);
+
+        List<RollClubThreeDetails> rollClubThreeDetailsList = rollClubThreeDetailsService.list(queryWrapper3);
+        if (oConvertUtils.listIsNotEmpty(rollClubThreeDetailsList)) {
+
+            steelDetailsVo.setRollClubThreeDetailsList(rollClubThreeDetailsList);
+        }
+
+
+        // 根据铸机号、班组、班别、时间范围。查询上若明细表
+        LambdaQueryWrapper<RollOutShippDetails> queryWrapper5 = new LambdaQueryWrapper<>();
+        queryWrapper5.eq(RollOutShippDetails::getCcmNo, ccmNo)
+                .in(RollOutShippDetails::getStorageBillId, idList);
+
+        List<RollOutShippDetails> rollOutShippDetailsList = rollOutShippDetailsService.list(queryWrapper5);
+        if (oConvertUtils.listIsNotEmpty(rollOutShippDetailsList)) {
+
+            steelDetailsVo.setRollOutShippDetailsList(rollOutShippDetailsList);
+        }
+
+        return steelDetailsVo;
+    }
+
+
     // 计算整数总和的方法
     private int calculateIntSum(List<DestinationStatisticsDetails> list) {
         if (list == null) {
@@ -3637,9 +3940,10 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
 
         // 根据铸机号、班组、班别、时间范围。查询棒一明细表
         LambdaQueryWrapper<RollClubOneDetails> queryWrapper1 = new LambdaQueryWrapper<>();
-        // 添加通用的查询条件
         queryWrapper1.eq(RollClubOneDetails::getCcmNo, ccmNo)
-                .in(RollClubOneDetails::getStorageBillId, idList);
+                .eq(RollClubOneDetails::getShift, shift)
+                .eq(RollClubOneDetails::getShiftGroup, shiftGroup)
+                .between(RollClubOneDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
 
         List<RollClubOneDetails> rollClubOneDetailsList = rollClubOneDetailsService.list(queryWrapper1);
         if (oConvertUtils.listIsNotEmpty(rollClubOneDetailsList)){
@@ -3699,7 +4003,9 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         // 根据铸机号、班组、班别、时间范围。查询高线明细表
         LambdaQueryWrapper<RollHeightDetails> queryWrapper4 = new LambdaQueryWrapper<>();
         queryWrapper4.eq(RollHeightDetails::getCcmNo, ccmNo)
-                .in(RollHeightDetails::getStorageBillId, idList);
+                .eq(RollHeightDetails::getShift, shift)
+                .eq(RollHeightDetails::getShiftGroup, shiftGroup)
+                .between(RollHeightDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
 
         List<RollHeightDetails> rollHeightDetailsList = rollHeightDetailsService.list(queryWrapper4);
         if (oConvertUtils.listIsNotEmpty(rollClubTwoDetailsList)){

+ 27 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/vo/SteelDetailsVo.java

@@ -0,0 +1,27 @@
+package org.jeecg.modules.billet.storageBill.vo;
+
+import lombok.Data;
+import org.jeecg.modules.billet.rollClubOne.entity.RollClubOneDetails;
+import org.jeecg.modules.billet.rollClubThree.entity.RollClubThreeDetails;
+import org.jeecg.modules.billet.rollClubTwo.entity.RollClubTwoDetails;
+import org.jeecg.modules.billet.rollHeight.entity.RollHeightDetails;
+import org.jeecg.modules.billet.rollOutShipp.entity.RollOutShippDetails;
+import org.jeecg.modules.billet.stackingAndLoadingVehicles.entity.StackingUpLog;
+
+import java.util.List;
+
+@Data
+public class SteelDetailsVo {
+
+    private List<RollClubOneDetails> rollClubOneDetailsList;
+
+    private List<RollClubTwoDetails> rollClubTwoDetailsList;
+
+    private List<RollClubThreeDetails> rollClubThreeDetailsList;
+
+    private List<RollOutShippDetails> rollOutShippDetailsList;
+
+    private List<RollHeightDetails> rollHeightDetails;
+
+    private List<StackingUpLog> stackingDownLogList;
+}