From 8ce578f52d2dc071beb043560baded7803787f07 Mon Sep 17 00:00:00 2001 From: value <z1292839451@163.com> Date: 星期三, 06 九月 2023 17:36:22 +0800 Subject: [PATCH] 删除鹓雏管理端的时间限制 --- inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java | 217 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 184 insertions(+), 33 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 df39e9c..706aff9 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,23 @@ package com.yuanchu.limslaboratory.service.impl; -import com.yuanchu.limslaboratory.mapper.PlanMapper; -import com.yuanchu.limslaboratory.pojo.vo.PlanVo; + +import cn.hutool.core.date.DateUtil; +import com.yuanchu.limslaboratory.mapper.*; +import com.yuanchu.limslaboratory.pojo.Inspection; +import com.yuanchu.limslaboratory.pojo.InspectionProduct; +import com.yuanchu.limslaboratory.pojo.NonConformanceReview; +import com.yuanchu.limslaboratory.pojo.Report; 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.Date; +import java.time.LocalDateTime; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -23,39 +33,180 @@ @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; + + @Resource + private NonConformanceReviewMapper nonConformanceReviewMapper; + + //鏌ヨ妫�楠岃鍒� @Override - public List<PlanVo> selectAllPlan(Integer deviceId, Date beginTime, Date endTime, Integer userId) { - //鑾峰彇鏁版嵁搴撴暟鎹� - List<PlanVo> planVos = planMapper.selectAllPlan(deviceId, beginTime, endTime, userId); - //娣诲姞璁″垝宸ユ湡鍜屾楠岃繘搴� - 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); + //娣诲姞涓嶅悎鏍间俊鎭埌璇勫 + NonConformanceReview nonConformanceReview = new NonConformanceReview(); + LocalDateTime localDateTime = DateUtil.toLocalDateTime(DateUtil.date()); + nonConformanceReview.setCreatedTime(localDateTime); + nonConformanceReview.setUpdatedTime(localDateTime); + } 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