3 Commits ae3c9e9556 ... 7bf384b0d2

Tác giả SHA1 Thông báo Ngày
  xdd 7bf384b0d2 feat: 编辑逻辑修改 4 ngày trước cách đây
  xdd 661ce96b6e feat: 批量编辑 4 ngày trước cách đây
  xdd 285c246c4a feat: 批量编辑 4 ngày trước cách đây

+ 1 - 0
fs-service/src/main/java/com/fs/medical/service/ReportIndicatorResultService.java

@@ -47,4 +47,5 @@ public interface ReportIndicatorResultService {
 
     List<ReportAllIndicatorCateDTO> getAllIndicatorByReportId(Long reportId);
 
+    boolean updateBatch(List<ReportIndicatorResult> resultList);
 }

+ 38 - 0
fs-service/src/main/java/com/fs/medical/service/impl/ReportIndicatorResultServiceImpl.java

@@ -12,7 +12,10 @@ import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import com.fs.medical.service.ReportIndicatorResultService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.Collections;
 import java.util.List;
 
@@ -59,6 +62,32 @@ public class ReportIndicatorResultServiceImpl implements ReportIndicatorResultSe
 
     @Override
     public boolean update(ReportIndicatorResult result) {
+        // 如果testValue不为空且indicatorId不为空,则进行异常判断
+        if (result.getTestValue() != null && result.getIndicatorId() != null) {
+            // 查询指标信息获取参考范围
+            MedicalIndicator indicator = medicalIndicatorMapper.getById(result.getIndicatorId());
+
+            if (indicator != null && indicator.getReferenceMin() != null && indicator.getReferenceMax() != null) {
+                BigDecimal testValue = result.getTestValue();
+                BigDecimal referenceMin = indicator.getReferenceMin();
+                BigDecimal referenceMax = indicator.getReferenceMax();
+
+                // 判断是否在正常范围内
+                if (testValue.compareTo(referenceMin) >= 0 && testValue.compareTo(referenceMax) <= 0) {
+                    // 正常范围内
+                    result.setIsAbnormal(0);
+                    result.setAbnormalType(null);
+                } else if (testValue.compareTo(referenceMin) < 0) {
+                    // 偏低
+                    result.setIsAbnormal(1);
+                    result.setAbnormalType("偏低");
+                } else {
+                    // 偏高
+                    result.setIsAbnormal(1);
+                    result.setAbnormalType("偏高");
+                }
+            }
+        }
         return reportIndicatorResultMapper.update(result) > 0;
     }
 
@@ -80,4 +109,13 @@ public class ReportIndicatorResultServiceImpl implements ReportIndicatorResultSe
         }
         return allIndicatorByReportId;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
+    public boolean updateBatch(List<ReportIndicatorResult> resultList) {
+        for (ReportIndicatorResult reportIndicatorResult : resultList) {
+            this.update(reportIndicatorResult);
+        }
+        return true;
+    }
 }

+ 21 - 0
fs-user-app/src/main/java/com/fs/app/controller/medical/ReportIndicatorResultController.java

@@ -201,7 +201,28 @@ public class ReportIndicatorResultController extends AppBaseController {
             return R.error("更新失败");
         }
     }
+    /**
+     * 批量更新检查结果
+     */
+    @Login
+    @RepeatSubmit
+    @ApiOperation("更新检查结果")
+    @PostMapping("/updateBatch")
+    public R update(@RequestBody List<ReportIndicatorResult> resultList) {
+        log.info("批量更新检查结果 {}",resultList);
 
+        try {
+            boolean success = reportIndicatorResultService.updateBatch(resultList);
+            if (success) {
+                return R.ok("更新成功");
+            } else {
+                return R.error("更新失败");
+            }
+        } catch (Exception e) {
+            logger.error("更新检查结果失败", e);
+            return R.error("更新失败");
+        }
+    }
     /**
      * 删除检查结果
      */

+ 2 - 2
fs-user-app/src/main/resources/application.yml

@@ -13,6 +13,6 @@ spring:
 #    active: druid-sxjz
 #    active: druid-yzt
 #    active: druid-fcky-test
-getTuiImg: "C:\Tools\ylrm_his_scrm\images\36f5863ffbbbdfc31620ea177c75284c.jpg"
-getTuiFont: "C:\Tools\ylrm_his_scrm\images\simsunb.ttf"
+getTuiImg: 'C:\Tools\ylrm_his_scrm\images\36f5863ffbbbdfc31620ea177c75284c.jpg'
+getTuiFont: 'C:\Tools\ylrm_his_scrm\images\simsunb.ttf'