From 82fbcce60ae86965441ae045df1f864d10005d35 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 21 八月 2023 17:59:46 +0800 Subject: [PATCH] 检验计划 --- inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java | 136 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 127 insertions(+), 9 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 8eb52e3..bb63d1a 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,14 +1,13 @@ package com.yuanchu.limslaboratory.service.impl; -import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.yuanchu.limslaboratory.mapper.*; -import com.yuanchu.limslaboratory.pojo.InspectionProduct; -import com.yuanchu.limslaboratory.pojo.Instrument; -import com.yuanchu.limslaboratory.pojo.User; -import com.yuanchu.limslaboratory.service.InstrumentService; +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.List; @@ -37,10 +36,16 @@ @Resource InstrumentMapper instrumentMapper; + @Resource + ReportMapper reportMapper; + + @Resource + InspectionMapper inspectionMapper; + //鏌ヨ妫�楠岃鍒� @Override - public List<Map<String,Object>> selectAllPlan(String code , String beginTime, String endTime,Integer status) { - return planMapper.selectAllPlan(code,beginTime,endTime,status); + public List<Map<String, Object>> selectAllPlan(String code, String beginTime, String endTime, Integer status) { + return planMapper.selectAllPlan(code, beginTime, endTime, status); } //鍒嗛厤-->閫夋嫨妫�楠屼汉 @@ -52,7 +57,7 @@ //鍒嗛厤-->閫夋嫨璁惧 @Override public List<Map<String, Object>> chooseinstum() { - return null; + return instrumentMapper.chooseinstum(); } //鍒嗛厤浜哄憳涓庤澶� @@ -65,4 +70,117 @@ inspectionProductMapper.updateById(inspectionProduct); return "鍒嗛厤瀹屾垚!"; } + + //妫�楠� + @Override + @Transactional(rollbackFor = Exception.class) + public String check(Integer id, String value) { + //濡傛灉妫�楠屽�间笉涓虹┖ + if (StringUtils.isNotBlank(value)) { + InspectionProduct inspectionProduct = inspectionProductMapper.selectById(id); + //鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�0 + String required = inspectionProduct.getRequired();//鏍囧噯鍊� + String internal = inspectionProduct.getInternal();//鍐呮帶鍊� + inspectionProduct.setTestValue(value); + inspectionProduct.setTestState(checkValues(required, internal, value)); + inspectionProductMapper.updateById(inspectionProduct); + } else { + //濡傛灉妫�楠屽�间负绌�,灏嗗師鏈夌殑妫�楠岀粨璁鸿鐩栦负null + inspectionProductMapper.upda(id); + } + return "鎻愪氦鎴愬姛!"; + } + + //涓婃姤 + @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 (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; + } + } 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; + } + } + } } -- Gitblit v1.9.3