Procházet zdrojové kódy

质检统计首炉添加是否分炉对应序号

lingpeng.li před 2 týdny
rodič
revize
ffcbeb8777

+ 32 - 25
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetOriginalProductRecord/service/impl/BilletOriginalProductRecordServiceImpl.java

@@ -11,6 +11,8 @@ import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.actualControl.billetActual.billetActual.entity.BilletRulerConfig;
 import org.jeecg.modules.actualControl.billetActual.billetActual.mapper.BilletRulerConfigMapper;
+import org.jeecg.modules.billet.billetHotsend.entity.BilletHotsend;
+import org.jeecg.modules.billet.billetHotsend.mapper.BilletHotsendBaseMapper;
 import org.jeecg.modules.billet.billetHotsendChangeShift.entity.BilletHotsendChangeShift;
 import org.jeecg.modules.billet.billetHotsendChangeShift.service.IBilletHotsendChangeShiftService;
 import org.jeecg.modules.billet.billetOriginalProductRecord.dto.QualityInspectionQueryDTO;
@@ -31,7 +33,6 @@ import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.time.temporal.TemporalAdjusters;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -60,6 +61,9 @@ public class BilletOriginalProductRecordServiceImpl extends ServiceImpl<BilletOr
     @Autowired
     private QualityInspectionStatisticsMapper qualityInspectionStatisticsMapper;
 
+    @Autowired
+    private BilletHotsendBaseMapper billetHotsendBaseMapper;
+
     @Override
     public Map<String, Object> getQualityInspectionMenu(QualityInspectionQueryDTO queryDTO) {
         if (queryDTO == null || StringUtils.isBlank(queryDTO.getCcmNo())) {
@@ -98,27 +102,6 @@ public class BilletOriginalProductRecordServiceImpl extends ServiceImpl<BilletOr
         oneQueryWrapper.eq(BilletOriginalProductRecord::getShift, newBilletHotsendChangeShift.getShift());
         oneQueryWrapper.eq(BilletOriginalProductRecord::getShiftGroup, newBilletHotsendChangeShift.getShiftGroup());
         oneQueryWrapper.between(BilletOriginalProductRecord::getCreateTime, startChangeTime, endChangeTime);
-//        else if (oConvertUtils.isNotEmpty(queryDTO.getStartTime()) && oConvertUtils.isNotEmpty(queryDTO.getEndTime())) {
-//            oneQueryWrapper.between(BilletOriginalProductRecord::getCreateTime, queryDTO.getStartTime(), queryDTO.getEndTime());
-//            search = false;
-//        }
-
-//        if (oConvertUtils.isNotEmpty(queryDTO.getQueryDate()) || search) {
-//            if (oConvertUtils.isEmpty(queryDTO.getQueryDate())) {
-//                String nowDate = DateUtils.getDate("yyyy-MM-dd");
-//                Date startOneTime = DateUtils.getStartOfDayByDate(DateUtils.getStartOfDay(nowDate));
-//                LambdaQueryWrapper<BilletHotsendChangeShift> changeQueryWrapper = new LambdaQueryWrapper<>();
-//                changeQueryWrapper.eq(BilletHotsendChangeShift::getCcmNo, queryDTO.getCcmNo()).orderByDesc(BilletHotsendChangeShift::getCreateTime).last("limit 1");
-//                BilletHotsendChangeShift billetHotsendChangeShift = billetHotsendChangeShiftService.getOne(changeQueryWrapper);
-//                oneQueryWrapper.ge(BilletOriginalProductRecord::getCreateTime,
-//                        oConvertUtils.isNotEmpty(billetHotsendChangeShift.getCreateTime()) ? billetHotsendChangeShift.getCreateTime() : startOneTime);
-//            } else {
-//                String queryDate = queryDTO.getQueryDate();
-//                Date startTime = DateUtils.getStartOfDayByDate(DateUtils.getStartOfDay(queryDate));
-//                Date endTime = DateUtils.getEndOfDayByDate(startTime);
-//                oneQueryWrapper.between(BilletOriginalProductRecord::getCreateTime, startTime, endTime);
-//            }
-//        }
 
         if (oConvertUtils.isNotEmpty(queryDTO.getHeatNo())) {
             oneQueryWrapper.eq(BilletOriginalProductRecord::getHeatNo, queryDTO.getHeatNo());
@@ -163,12 +146,11 @@ public class BilletOriginalProductRecordServiceImpl extends ServiceImpl<BilletOr
         int dayTotalCount = 0;
         BigDecimal dayTotalWeight = BigDecimal.ZERO;
 
+        boolean isFirst = true;
+
         for (BilletOriginalProductRecord record : records) {
             QualityInspectionVO vo = new QualityInspectionVO();
             vo.setHeatNo(record.getHeatNo());
-//            String brandNum = Optional.ofNullable(record.getGrade())
-//                    .map(bn -> sysDictService.queryDictTextByKey("billet_spec", bn))
-//                    .orElseGet(() -> sysDictService.queryDictTextByKey("billet_spec", "5"));
             vo.setBrandNum(
                     record.getBrandNum() != null ? record.getBrandNum() : record.getGrade()
             );
@@ -180,6 +162,31 @@ public class BilletOriginalProductRecordServiceImpl extends ServiceImpl<BilletOr
                 vo.setNotes(record.getNotes());
             }
 
+            // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+            // 只处理第一条记录,设置 orderNum
+            if (isFirst) {
+                isFirst = false;
+
+                LambdaQueryWrapper<BilletHotsend> hotsendQuery = new LambdaQueryWrapper<>();
+                hotsendQuery.eq(BilletHotsend::getHeatNo, record.getHeatNo())
+                        .eq(BilletHotsend::getCcmNo, record.getCcmNo());
+
+                List<BilletHotsend> billetHotsendList = billetHotsendBaseMapper.selectList(hotsendQuery);
+
+                long countSameGroup = billetHotsendList.stream()
+                        .filter(h -> Objects.equals(h.getShift(), record.getShift())
+                                && Objects.equals(h.getShiftGroup(), record.getShiftGroup()))
+                        .count();
+
+                if (billetHotsendList.size() > countSameGroup) {
+                    // 存在非当前班组的分炉记录
+                    vo.setOrderNum(0);
+                } else {
+                    // 只有当前班组的记录
+                    vo.setOrderNum(1);
+                }
+            }
+
             Map<String, Integer> mergedCount = new HashMap<>();
             Map<String, BigDecimal> mergedWeight = new HashMap<>();
 

+ 2 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetOriginalProductRecord/vo/QualityInspectionVO.java

@@ -30,6 +30,8 @@ public class QualityInspectionVO {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date deliveryTime;
 
+    private Integer orderNum;
+
     private String originalProductRecordId;
 
     private Map<String, Integer> lengthCountMap = new LinkedHashMap<>();