Browse Source

通过质控样获取对应的配置信息时 时间需要获取的是化验结果明细的时间 涉及到 合格率和对应的标称值获取

王苗苗 5 days ago
parent
commit
179025c666

+ 47 - 2
ruoyi-system/src/main/java/com/ruoyi/business/service/impl/BusinessServiceImpl.java

@@ -429,7 +429,7 @@ public class BusinessServiceImpl implements IBusinessService {
     private void calculateRate(AssayDetailRes assayDetailRes, List<ZAssayResult> zAssayResults) {
         if(!CollectionUtils.isEmpty(zAssayResults)){
             //获取当前日期
-            Date nowDate = DateUtils.getNowDate();
+//            Date nowDate = DateUtils.getNowDate();
             Long deviceWorks = assayDetailRes.getDeviceWorks();//水厂的id 获取标称值需要获取
             //高COD
             Optional<ZAssayResult> highCodOptional = zAssayResults.stream().filter(zAssayResult -> "1".equals(zAssayResult.getAssayItem())).findFirst();
@@ -442,6 +442,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     //2024年10月29日09:50:25 逻辑调整:获取各个指标的标称值要动态获取,和化验结果的上下限逻辑是一样的
                     //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):
                     if(!Objects.isNull(deviceWorks)){
+                        //2025年03月21日10:51:50 这个日期不能获取当前时间,获取化验明细的更新时间
+                        String updateTime = zAssayResult.getUpdateTime();
+                        if(StringUtils.isBlank(updateTime))
+                            return;
+                        Date nowDate = DateUtils.parseDate(updateTime);
                         List<ZQualityValue> list = this.zQualityValueMapper.selectZQualityValueList(ZQualityValue.builder().beginTime(nowDate).endTime(nowDate).deviceWorks(deviceWorks).assayItem(zAssayResult.getAssayItem()).build());
                         //理论上是只有一个的
                         if(!CollectionUtils.isEmpty(list)){
@@ -468,6 +473,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     //2024年10月29日09:50:25 逻辑调整:获取各个指标的标称值要动态获取,和化验结果的上下限逻辑是一样的
                     //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):
                     if(!Objects.isNull(deviceWorks)){
+                        //2025年03月21日10:51:50 这个日期不能获取当前时间,获取化验明细的更新时间
+                        String updateTime = zAssayResult.getUpdateTime();
+                        if(StringUtils.isBlank(updateTime))
+                            return;
+                        Date nowDate = DateUtils.parseDate(updateTime);
                         List<ZQualityValue> list = this.zQualityValueMapper.selectZQualityValueList(ZQualityValue.builder().beginTime(nowDate).endTime(nowDate).deviceWorks(deviceWorks).assayItem(zAssayResult.getAssayItem()).build());
                         //理论上是只有一个的
                         if(!CollectionUtils.isEmpty(list)){
@@ -495,6 +505,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     //2024年10月29日09:50:25 逻辑调整:获取各个指标的标称值要动态获取,和化验结果的上下限逻辑是一样的
                     //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):
                     if(!Objects.isNull(deviceWorks)){
+                        //2025年03月21日10:51:50 这个日期不能获取当前时间,获取化验明细的更新时间
+                        String updateTime = zAssayResult.getUpdateTime();
+                        if(StringUtils.isBlank(updateTime))
+                            return;
+                        Date nowDate = DateUtils.parseDate(updateTime);
                         List<ZQualityValue> list = this.zQualityValueMapper.selectZQualityValueList(ZQualityValue.builder().beginTime(nowDate).endTime(nowDate).deviceWorks(deviceWorks).assayItem(zAssayResult.getAssayItem()).build());
                         //理论上是只有一个的
                         if(!CollectionUtils.isEmpty(list)){
@@ -521,6 +536,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     //2024年10月29日09:50:25 逻辑调整:获取各个指标的标称值要动态获取,和化验结果的上下限逻辑是一样的
                     //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):
                     if(!Objects.isNull(deviceWorks)){
+                        //2025年03月21日10:51:50 这个日期不能获取当前时间,获取化验明细的更新时间
+                        String updateTime = zAssayResult.getUpdateTime();
+                        if(StringUtils.isBlank(updateTime))
+                            return;
+                        Date nowDate = DateUtils.parseDate(updateTime);
                         List<ZQualityValue> list = this.zQualityValueMapper.selectZQualityValueList(ZQualityValue.builder().beginTime(nowDate).endTime(nowDate).deviceWorks(deviceWorks).assayItem(zAssayResult.getAssayItem()).build());
                         //理论上是只有一个的
                         if(!CollectionUtils.isEmpty(list)){
@@ -547,6 +567,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     //2024年10月29日09:50:25 逻辑调整:获取各个指标的标称值要动态获取,和化验结果的上下限逻辑是一样的
                     //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):
                     if(!Objects.isNull(deviceWorks)){
+                        //2025年03月21日10:51:50 这个日期不能获取当前时间,获取化验明细的更新时间
+                        String updateTime = zAssayResult.getUpdateTime();
+                        if(StringUtils.isBlank(updateTime))
+                            return;
+                        Date nowDate = DateUtils.parseDate(updateTime);
                         List<ZQualityValue> list = this.zQualityValueMapper.selectZQualityValueList(ZQualityValue.builder().beginTime(nowDate).endTime(nowDate).deviceWorks(deviceWorks).assayItem(zAssayResult.getAssayItem()).build());
                         //理论上是只有一个的
                         if(!CollectionUtils.isEmpty(list)){
@@ -573,6 +598,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     //2024年10月29日09:50:25 逻辑调整:获取各个指标的标称值要动态获取,和化验结果的上下限逻辑是一样的
                     //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):
                     if(!Objects.isNull(deviceWorks)){
+                        //2025年03月21日10:51:50 这个日期不能获取当前时间,获取化验明细的更新时间
+                        String updateTime = zAssayResult.getUpdateTime();
+                        if(StringUtils.isBlank(updateTime))
+                            return;
+                        Date nowDate = DateUtils.parseDate(updateTime);
                         List<ZQualityValue> list = this.zQualityValueMapper.selectZQualityValueList(ZQualityValue.builder().beginTime(nowDate).endTime(nowDate).deviceWorks(deviceWorks).assayItem(zAssayResult.getAssayItem()).build());
                         //理论上是只有一个的
                         if(!CollectionUtils.isEmpty(list)){
@@ -599,6 +629,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     //2024年10月29日09:50:25 逻辑调整:获取各个指标的标称值要动态获取,和化验结果的上下限逻辑是一样的
                     //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):
                     if(!Objects.isNull(deviceWorks)){
+                        //2025年03月21日10:51:50 这个日期不能获取当前时间,获取化验明细的更新时间
+                        String updateTime = zAssayResult.getUpdateTime();
+                        if(StringUtils.isBlank(updateTime))
+                            return;
+                        Date nowDate = DateUtils.parseDate(updateTime);
                         List<ZQualityValue> list = this.zQualityValueMapper.selectZQualityValueList(ZQualityValue.builder().beginTime(nowDate).endTime(nowDate).deviceWorks(deviceWorks).assayItem(zAssayResult.getAssayItem()).build());
                         //理论上是只有一个的
                         if(!CollectionUtils.isEmpty(list)){
@@ -625,6 +660,11 @@ public class BusinessServiceImpl implements IBusinessService {
                     //2024年10月29日09:50:25 逻辑调整:获取各个指标的标称值要动态获取,和化验结果的上下限逻辑是一样的
                     //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):
                     if(!Objects.isNull(deviceWorks)){
+                        //2025年03月21日10:51:50 这个日期不能获取当前时间,获取化验明细的更新时间
+                        String updateTime = zAssayResult.getUpdateTime();
+                        if(StringUtils.isBlank(updateTime))
+                            return;
+                        Date nowDate = DateUtils.parseDate(updateTime);
                         List<ZQualityValue> list = this.zQualityValueMapper.selectZQualityValueList(ZQualityValue.builder().beginTime(nowDate).endTime(nowDate).deviceWorks(deviceWorks).assayItem(zAssayResult.getAssayItem()).build());
                         //理论上是只有一个的
                         if(!CollectionUtils.isEmpty(list)){
@@ -720,7 +760,12 @@ public class BusinessServiceImpl implements IBusinessService {
         if(CollectionUtils.isEmpty(bizDevices)){
             return isPassed;//无法查询到水厂,默认合格
         }
-        Date nowDate = DateUtils.getNowDate();
+        //2025年03月21日10:38:54 这个日期不能获取当前时间,获取化验明细的更新时间
+        String updateTime = zAssayResult.getUpdateTime();
+        if(StringUtils.isBlank(updateTime))
+            return isPassed;
+        Date nowDate = DateUtils.parseDate(updateTime);
+//        Date nowDate = DateUtils.getNowDate();
 //        Date nowDate = DateUtils.parseDate("2024-08-13");
         Double resultConcentration = zAssayResult.getResultConcentration();//化验的真实值
         //去查询配置的标准值的范围(数据不确认,有可能是多个,获取最后一条数据):