From c5138faa1c4771bfbc19de5b257e7c129c081cb8 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 28 八月 2023 13:30:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java | 206 +++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 174 insertions(+), 32 deletions(-)
diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
index 5819ccd..555110d 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
@@ -1,13 +1,22 @@
package com.yuanchu.limslaboratory.service.impl;
-import com.yuanchu.limslaboratory.mapper.PlanMapper;
-import com.yuanchu.limslaboratory.pojo.vo.PlanVo;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.yuanchu.limslaboratory.mapper.*;
+import com.yuanchu.limslaboratory.pojo.*;
import com.yuanchu.limslaboratory.service.PlanService;
+import com.yuanchu.limslaboratory.utils.MyUtil;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* <p>
@@ -23,39 +32,172 @@
@Resource
private PlanMapper planMapper;
- /**
- * 鏌ヨ妫�楠岃鍒�
- *
- * @return
- */
+ @Resource
+ InspectionProductMapper inspectionProductMapper;
+
+ @Resource
+ UserMapper userMapper;
+
+ @Resource
+ InstrumentMapper instrumentMapper;
+
+ @Resource
+ ReportMapper reportMapper;
+
+ @Resource
+ InspectionMapper inspectionMapper;
+
+ @Resource
+ InspectionMaterialMapper inspectionMaterialMapper;
+
+ @Resource
+ LinkDetectionMapper linkDetectionMapper;
+
+ //鏌ヨ妫�楠岃鍒�
@Override
- public List<PlanVo> selectAllPlan(String device, Date beginTime, Date endTime, String user) {
- //鑾峰彇鏁版嵁搴撴暟鎹�
- List<PlanVo> planVos = planMapper.selectAllPlan(device, beginTime, endTime, user);
- //娣诲姞璁″垝宸ユ湡鍜屾楠岃繘搴�
- planVos.forEach(planVo -> {
- //娣诲姞妫�楠岃繘搴�
- //鍒ゆ柇鏄惁鏄凡瀹屾垚
- if (planVo.getState() != null) {
- planVo.setProgress(100);
+ public List<Map<String, Object>> selectAllPlan(String code, String beginTime, String endTime, Integer status) {
+ return planMapper.selectAllPlan(code, beginTime, endTime, status);
+ }
+
+ //鍒嗛厤-->閫夋嫨妫�楠屼汉
+ @Override
+ public List<Map<String, Object>> choosecheck() {
+ return userMapper.selectUser();
+ }
+
+ //鍒嗛厤-->閫夋嫨璁惧
+ @Override
+ public List<Map<String, Object>> chooseinstum() {
+ return instrumentMapper.chooseinstum();
+ }
+
+ //鍒嗛厤浜哄憳涓庤澶�
+ @Override
+ public String distribution(Integer id, Integer userId, Integer instrumentId) {
+ InspectionProduct inspectionProduct = new InspectionProduct();
+ inspectionProduct.setId(id);
+ //鎵ц浜�
+ inspectionProduct.setUserId(userId);
+ inspectionProduct.setInstrumentId(instrumentId);
+ inspectionProductMapper.updateById(inspectionProduct);
+ return "鍒嗛厤瀹屾垚!";
+ }
+
+ //妫�楠�
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Integer check(Integer id, String value) {
+ InspectionProduct inspectionProduct = inspectionProductMapper.selectById(id);
+ //鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�0
+ String required = inspectionProduct.getRequired();//鏍囧噯鍊�
+ String internal = inspectionProduct.getInternal();//鍐呮帶鍊�
+ inspectionProduct.setTestValue(value);
+ List<Integer> list = Arrays.stream(value.split(",")).map(s -> {
+ int values = checkValues(required, internal, s);
+ return values;
+ }).collect(Collectors.toList());
+ if (list.contains(0)) {
+ //濡傛灉鍏朵腑涓�涓楠屽�间笉鍚堟牸鍒欒椤圭洰妫�楠屼笉鍚堟牸
+ inspectionProduct.setTestState(0);
+ }else {
+ inspectionProduct.setTestState(1);
+ }
+ inspectionProductMapper.updateById(inspectionProduct);
+ return inspectionProduct.getTestState();
+ }
+
+ //涓婃姤
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public String reported(Integer id) {
+ /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
+ //鍏堝垽鏂楠岀粨鏋�
+ List<Integer> results = inspectionProductMapper.getresult(id);
+ int count = 0;
+ for (Integer result : results) {
+ if (result != null && result == 1) {
+ count++;
}
- //鍒ゆ柇鏄惁鏄湭鍒嗛厤
- if (planVo.getCheckproject() == null) {
- planVo.setProgress(0);
+ }
+ //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
+ if (results.contains(0)) {
+ Inspection inspection = new Inspection();
+ inspection.setId(id);
+ inspection.setInspectionStatus(0);
+ //鏇存柊妫�楠屽崟
+ inspectionMapper.updateById(inspection);
+ } else if (count == results.size()) {
+ Inspection inspection = new Inspection();
+ inspection.setId(id);
+ inspection.setInspectionStatus(1);
+ inspectionMapper.updateById(inspection);
+ } else return "椤圭洰鏈楠屽畬!";
+ //鐢熸垚鎶ュ憡鍗�
+ Report report = new Report();
+ //鐢熸垚鎶ュ憡鍗曞彿
+ String recode = MyUtil.getTimeSixNumberCode("BG", "BG");
+ //鑾峰彇妫�楠岀粨璁�
+ String conclusion = "";
+ Inspection inspection = inspectionMapper.selectById(id);
+ if (inspection.getInspectionStatus().equals(1)) {
+ conclusion = "鍚堟牸";
+ } else {
+ conclusion = "涓嶅悎鏍�";
+ }
+ report.setCode(recode);
+ report.setStatus(0);
+ report.setConclusion(conclusion);
+ report.setInspectionId(id);
+ //鏂板妫�楠屾姤鍛�
+ reportMapper.insert(report);
+ return "涓婃姤鎴愬姛!";
+ }
+
+
+ /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+ private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+ boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
+ boolean isControlValueSatisfied = isValueSatisfied(controlValueStr, detectionValueStr);
+
+ if (isStandardValueSatisfied && isControlValueSatisfied) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+
+ private boolean isValueSatisfied(String valueStr, String detectionValueStr) {
+ String substring = valueStr.substring(1, 2);
+ if (substring.equals("=")) {
+ String operator = valueStr.substring(0, 2);
+ Double standardValue = Double.parseDouble(valueStr.substring(2));
+ Double detectionValue = Double.parseDouble(detectionValueStr);
+ switch (operator) {
+ case ">=":
+ return detectionValue >= standardValue;
+ case "<=":
+ return detectionValue <= standardValue;
+ default:
+ return false;
}
- //鍒ゆ柇鏄惁鏄繘琛屼腑
- if (planVo.getState() == null && planVo.getCheckproject() != null) {
- planVo.setProgress(50);
+ } else {
+ String operator = valueStr.substring(0, 1);
+ Double standardValue = Double.parseDouble(valueStr.substring(1));
+ Double detectionValue = Double.parseDouble(detectionValueStr);
+ switch (operator) {
+ case ">":
+ return detectionValue > standardValue;
+ case "鈮�":
+ return detectionValue >= standardValue;
+ case "鈮�":
+ return detectionValue <= standardValue;
+ case "<":
+ return detectionValue < standardValue;
+ case "=":
+ return detectionValue.equals(standardValue);
+ default:
+ return false;
}
- //娣诲姞璁″垝宸ユ湡
- if (planVo.getFinishtime() != null && planVo.getStarttime() != null) {
- long startTimeInMillis = planVo.getStarttime().getTime();
- long endTimeInMillis = planVo.getFinishtime().getTime();
- long durationInMillis = endTimeInMillis - startTimeInMillis;
- long duration = durationInMillis / (1000 * 60 * 60);
- planVo.setDuration(Integer.valueOf((int) duration));
- }
- });
- return planVos;
+ }
}
}
--
Gitblit v1.9.3