|
@@ -227,32 +227,38 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
|
|
|
@ApiOperation(value="钢坯原始生产记录查询", notes="钢坯原始生产记录查询")
|
|
|
@GetMapping(value = "/queryBilletRecordByCcmNo")
|
|
|
- public Result<List<BilletOriginalProductRecord>> queryHeatsActualsByCcmNo(@RequestParam(name="ccmNo", required = false) String ccmNo) {
|
|
|
-
|
|
|
- String classShiftGroup = String.format("class:shift:group:%s", ccmNo); // 班组
|
|
|
- String classShift = String.format("class:shift:%s",ccmNo); // 班别
|
|
|
- String shift = !oConvertUtils.getString(redisTemplate.opsForValue().get(classShift)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(classShift)) : "";
|
|
|
- String shiftGroup = !oConvertUtils.getString(redisTemplate.opsForValue().get(classShiftGroup)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(classShiftGroup)) : "";
|
|
|
-
|
|
|
- if (oConvertUtils.isEmpty(shiftGroup) || oConvertUtils.isEmpty(shift)){
|
|
|
- return Result.error("班组班别获取为空,钢坯原始生产记录查询失败!");
|
|
|
- }
|
|
|
- // 根据ccmNo、shift、shiftGroup查询最新的交班记录
|
|
|
- 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 billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(queryWrapper);
|
|
|
- if (billetHotsendChangeShift == null){
|
|
|
- log.info("{}{}", "钢坯原始生产记录,交班记录为空!", ccmNo + "失败时间:" + new Date());
|
|
|
- return Result.error("交班信息为空,钢坯原始生产记录查询失败!");
|
|
|
+ public Result<List<BilletOriginalProductRecord>> queryHeatsActualsByCcmNo(@RequestParam(name="ccmNo", required = false) String ccmNo,
|
|
|
+ @RequestParam(name="changeShiftId", required = false) String changeShiftId,
|
|
|
+ @RequestParam(name="queryType") String queryType) {
|
|
|
+ List<BilletOriginalProductRecord> billetOriginalProductRecords = new ArrayList<>();
|
|
|
+ BilletHotsendChangeShift billetHotsendChangeShift;
|
|
|
+ if ("1".equals(queryType)){
|
|
|
+ String classShiftGroup = String.format("class:shift:group:%s", ccmNo); // 班组
|
|
|
+ String classShift = String.format("class:shift:%s",ccmNo); // 班别
|
|
|
+ String shift = !oConvertUtils.getString(redisTemplate.opsForValue().get(classShift)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(classShift)) : "";
|
|
|
+ String shiftGroup = !oConvertUtils.getString(redisTemplate.opsForValue().get(classShiftGroup)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(classShiftGroup)) : "";
|
|
|
+
|
|
|
+ if (oConvertUtils.isEmpty(shiftGroup) || oConvertUtils.isEmpty(shift)){
|
|
|
+ return Result.error("班组班别获取为空,钢坯原始生产记录查询失败!");
|
|
|
+ }
|
|
|
+ // 根据ccmNo、shift、shiftGroup查询最新的交班记录
|
|
|
+ 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 Result.error("交班信息为空,钢坯原始生产记录查询失败!");
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ billetHotsendChangeShift = billetHotsendChangeShiftService.getById(changeShiftId);
|
|
|
}
|
|
|
//1、 获取当班浇筑炉次详细信息
|
|
|
- List<BilletOriginalProductRecord> billetOriginalProductRecords = new ArrayList<>();
|
|
|
- List<HeatsActualsInfo> heatsActualsInfoList = queryCurrentHeatsActualsInfo(ccmNo, shift, shiftGroup, billetHotsendChangeShift.getCreateTime());
|
|
|
+ List<HeatsActualsInfo> heatsActualsInfoList = queryCurrentHeatsActualsInfo(ccmNo, billetHotsendChangeShift.getShift(), billetHotsendChangeShift.getShiftGroup(), billetHotsendChangeShift.getCreateTime(), billetHotsendChangeShift.getChangeShiftTime(), queryType);
|
|
|
log.info("原始生产记录,当班浇筑炉次数据信息: " + JSON.toJSON(heatsActualsInfoList));
|
|
|
if (oConvertUtils.listIsNotEmpty(heatsActualsInfoList)){
|
|
|
//2、把获取到的当班浇筑炉次信息heatsActualsInfoList保存到原始生产记录表
|
|
@@ -275,10 +281,11 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
String totalInfoJson = x.getTotalInfo();
|
|
|
if (oConvertUtils.isEmpty(totalInfoJson)){
|
|
|
billetOriginalProductRecord.setAmount(0);// 合计
|
|
|
+ }else {
|
|
|
+ JSONObject json = JSON.parseObject(totalInfoJson);
|
|
|
+ Integer totalCount = json.getInteger("totalCount");
|
|
|
+ billetOriginalProductRecord.setAmount(totalCount);// 合计
|
|
|
}
|
|
|
- JSONObject json = JSON.parseObject(totalInfoJson);
|
|
|
- Integer totalCount = json.getInteger("totalCount");
|
|
|
- billetOriginalProductRecord.setAmount(totalCount);// 合计
|
|
|
billetOriginalProductRecord.setRollClubOneDetails(x.getDirectRolling());// 直轧热送棒一
|
|
|
billetOriginalProductRecord.setHotChargeLength(x.getHotCharge());
|
|
|
billetOriginalProductRecord.setStackLength(x.getStacking());
|
|
@@ -287,14 +294,25 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
billetOriginalProductRecords.add(billetOriginalProductRecord);
|
|
|
});
|
|
|
log.info("钢坯原始生产记录信息: " + JSON.toJSON(billetOriginalProductRecords));
|
|
|
- billetOriginalProductRecordService.saveBatch(billetOriginalProductRecords);
|
|
|
+ try {
|
|
|
+ // 批量保存
|
|
|
+ billetOriginalProductRecordService.saveBatch(billetOriginalProductRecords);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("保存钢坯原始生产记录失败", e);
|
|
|
+ return Result.error("钢坯原始生产记录数据保存失败,请重试");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ QueryWrapper<BilletOriginalProductRecord> queryWrapper3 = new QueryWrapper<>();
|
|
|
+ queryWrapper3.eq("ccm_no", ccmNo)
|
|
|
+ .eq("shift", billetHotsendChangeShift.getShift())
|
|
|
+ .eq("shift_group", billetHotsendChangeShift.getShiftGroup());
|
|
|
+ if ("1".equals(queryType)){
|
|
|
+ queryWrapper3.between("create_time", billetHotsendChangeShift.getCreateTime(), new Date());
|
|
|
+ }else {
|
|
|
+ queryWrapper3.between("create_time", billetHotsendChangeShift.getCreateTime(), billetHotsendChangeShift.getChangeShiftTime());
|
|
|
}
|
|
|
// 通过铸机号、班组、班别、交班开始时间 查询钢坯生产原始记录
|
|
|
- List<BilletOriginalProductRecord> billetOriginalProductRecordList = billetOriginalProductRecordService.list(new QueryWrapper<BilletOriginalProductRecord>()
|
|
|
- .eq("ccm_no", ccmNo)
|
|
|
- .eq("shift", shift)
|
|
|
- .eq("shift_group", shiftGroup)
|
|
|
- .between("create_time", billetHotsendChangeShift.getCreateTime(), new Date()));
|
|
|
+ List<BilletOriginalProductRecord> billetOriginalProductRecordList = billetOriginalProductRecordService.list(queryWrapper3);
|
|
|
return Result.OK(billetOriginalProductRecordList);
|
|
|
}
|
|
|
|
|
@@ -305,18 +323,22 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
* @param shiftGroup
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<HeatsActualsInfo> queryCurrentHeatsActualsInfo(String ccmNo, String shift, String shiftGroup, Date createTime) {
|
|
|
+ private List<HeatsActualsInfo> queryCurrentHeatsActualsInfo(String ccmNo, String shift, String shiftGroup, Date shiftStartTime, Date shiftEndTime, String queryType) {
|
|
|
List<HeatsActualsInfo> heatsActualsInfoList = new ArrayList<>();
|
|
|
//根据ccmNo、shift、shiftGroup、大于billetHotsendChangeShift的创建时间 查询所有炉次传递单BilletHotsend
|
|
|
LambdaQueryWrapper<BilletHotsend> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
queryWrapper1.eq(BilletHotsend::getCcmNo, ccmNo)
|
|
|
.eq(BilletHotsend::getShift, shift)
|
|
|
- .eq(BilletHotsend::getShiftGroup, shiftGroup)
|
|
|
- .between(BilletHotsend::getCreateTime, createTime, new Date())
|
|
|
- .orderByDesc(BilletHotsend::getCreateTime);
|
|
|
+ .eq(BilletHotsend::getShiftGroup, shiftGroup);
|
|
|
+ if ("1".equals(queryType)){
|
|
|
+ queryWrapper1.between(BilletHotsend::getCreateTime, shiftStartTime, new Date());
|
|
|
+ }else {
|
|
|
+ queryWrapper1.between(BilletHotsend::getCreateTime, shiftStartTime, shiftEndTime);
|
|
|
+ }
|
|
|
+ queryWrapper1.orderByDesc(BilletHotsend::getCreateTime);
|
|
|
List<BilletHotsend> billetHotsendList = billetHotsendBaseService.list(queryWrapper1);
|
|
|
if (oConvertUtils.listIsEmpty(billetHotsendList)){
|
|
|
- log.info("{}{}", "钢坯原始生产记录,炉次传递单为空!", ccmNo + "失败时间:" + new Date());
|
|
|
+ log.info("{}{}", "钢坯原始生产记录查询失败,炉次传递单为空!", ccmNo + "失败时间:" + new Date());
|
|
|
return heatsActualsInfoList;
|
|
|
}
|
|
|
List<String> distinctHeatNoList = billetHotsendList.stream()
|
|
@@ -358,11 +380,7 @@ public class BilletOriginalProductRecordController extends JeecgController<Bille
|
|
|
heatsActualsInfo.setShiftGroup(x.getShiftGroup());
|
|
|
heatsActualsInfo.setShift(x.getShift());
|
|
|
heatsActualsInfo.setHeatNo(x.getHeatNo());
|
|
|
-
|
|
|
- String brandNum = String.format("billet:basic:info:brand:num:%s", ccmNo); // 牌号
|
|
|
- String brandNumStr = !oConvertUtils.getString(redisTemplate.opsForValue().get(brandNum)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(brandNum)) : "";
|
|
|
-
|
|
|
- heatsActualsInfo.setBrandNum(brandNumStr);
|
|
|
+ heatsActualsInfo.setBrandNum(x.getBrandNum());// 牌号 钢种
|
|
|
// 根据铸机号、炉号查询钢坯实绩信息BilletBasicInfo
|
|
|
LambdaQueryWrapper<BilletBasicInfo> queryWrapper2 = new LambdaQueryWrapper<>();
|
|
|
queryWrapper2.eq(BilletBasicInfo::getCcmNo, x.getCcmNo())
|