From 7bae2c55ff2d9c94d30df77ad2dfbc66bb703209 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 06 九月 2024 17:40:33 +0800 Subject: [PATCH] 电路试验 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 425 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 306 insertions(+), 119 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index 1a6804c..58ded93 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -23,8 +23,8 @@ import com.deepoove.poi.util.TableTools; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; -import com.yuanchu.mom.dto.ExcelDto; import com.yuanchu.mom.dto.InsOrderPlanDTO; +import com.yuanchu.mom.dto.InsProductResultDto; import com.yuanchu.mom.dto.SampleProductDto; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; @@ -33,7 +33,6 @@ import com.yuanchu.mom.utils.*; import com.yuanchu.mom.vo.*; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -43,7 +42,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.*; -import java.math.BigDecimal; import java.nio.file.Files; import java.nio.file.Paths; import java.text.SimpleDateFormat; @@ -55,6 +53,8 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -98,6 +98,9 @@ @Resource private InsProductResultMapper insProductResultMapper; + + @Resource + private InsProductResult2Mapper insProductResult2Mapper; @Resource private InsProductUserMapper insProductUserMapper; @@ -167,18 +170,7 @@ Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); Integer userId = map1.get("userId"); User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉 - String laboratory = null; - //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id - /* String departLimsId = user.getDepartLimsId(); - if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) { - String[] split = departLimsId.split(","); - //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙) - String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1])); - if (departLims.contains("瀹為獙瀹�")) { - laboratory = departLims; - } - }*/ if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { insOrderPlanDTO.setUserId(userId.longValue()); } @@ -201,8 +193,8 @@ for (Integer samId : sampleIds) { //杩囨护娌℃湁妫�楠岄」鐩殑鏍峰搧id if (ObjectUtils.isEmpty(insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId,samId) - .eq(InsProduct::getState,1)))){ + .eq(InsProduct::getInsSampleId, samId) + .eq(InsProduct::getState, 1)))) { continue; } //鍏ュ簱娆℃暟 @@ -255,23 +247,13 @@ break; case 1: //鍏夌氦甯� - insProducts = insSampleMapper.getInsProduct2(id); break; case 2: //鍏夌氦 - insProducts = insSampleMapper.getInsProduct3(id); break; case 3: //濂楃 - insProducts = insSampleMapper.getInsProduct4(id); break; - } - - //濡傛灉鏄ぇ鏍峰搧涓嬬殑椤圭洰涓虹┖,閭d箞鏌ヨ绗竴涓厜绾ょ殑椤圭洰 - if (ObjectUtils.isEmpty(insProducts) && type == 0) { - //鏌ヨ绗竴涓厜绾ょ殑id - List<InsFiber> insFibers = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushingMapper.selectList(Wrappers.<InsBushing>lambdaQuery().eq(InsBushing::getInsSampleId, id)).get(0).getId())); - insProducts = insSampleMapper.getInsProduct3(insFibers.get(0).getId()); } Set<Integer> set = new HashSet<>(); Map<Integer, String> map2 = new HashMap<>(); @@ -529,6 +511,21 @@ return sonLaboratory; } + @Override + public int deleteInsContext(InsProductResultVo insProductResultVo) { + return insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getFrequency, insProductResultVo.getFrequency()) + .in(InsProductResult2::getInsProductId, insProductResultVo.getProductIds())); + } + + @Override + public int deleteInsContext2(String frequency, Integer productId, String often) { + return insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getFrequency, frequency) + .eq(InsProductResult2::getInsProductId, productId) + .eq(InsProductResult2::getOften, often)); + } + @Override public void saveInsContext(Map<String, Object> insContext) { @@ -540,7 +537,6 @@ insProduct.setId(Integer.parseInt(k)); List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() .eq(InsProductResult::getInsProductId, insProduct.getId())); - InsProduct product = insProductMapper.selectById(insProduct.getId()); InsProductResult result; if (CollectionUtils.isEmpty(results)) { result = new InsProductResult(); @@ -548,14 +544,6 @@ result = results.get(0); } result.setInsProductId(Integer.parseInt(k)); - /*鏍¢獙涓�涓媟esult琛�*/ - List<InsProductResult> insProductResultss = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() - .eq(InsProductResult::getInsProductId, insProduct.getId())); - if (insProductResultss.size() > 1) { - for (int i = 1; i < insProductResultss.size(); i++) { - insProductResultMapper.deleteById(insProductResultss.get(i)); - } - } //妫�楠屽�� if (jo.get("insValue") != null) { JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(jo.get("insValue"))); @@ -671,88 +659,42 @@ // 璺ㄥぉ鐨勬儏鍐� isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime); } - //鍔犵彮 - List<AuxiliaryOutputWorkingHours> count1s = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck, userId) - .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) - .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) - .eq(AuxiliaryOutputWorkingHours::getOvertimeOrderNo, insOrder.getEntrustCode()) - .eq(AuxiliaryOutputWorkingHours::getSample, insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode())); - if (count1s.size() > 1) { - for (int i = 1; i < count1s.size(); i++) { - auxiliaryOutputWorkingHoursMapper.deleteById(count1s.get(i)); - } - } - //闈炲姞鐝� - List<AuxiliaryOutputWorkingHours> count2s = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck, userId) - .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) - .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) - .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode()) - .eq(AuxiliaryOutputWorkingHours::getSample, insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode())); - if (count2s.size() > 1) { - for (int i = 1; i < count2s.size(); i++) { - auxiliaryOutputWorkingHoursMapper.deleteById(count2s.get(i)); - } - } - if (ObjectUtils.isNotEmpty(insProduct.getManHour()) && CollectionUtils.isEmpty(count2s) && CollectionUtils.isEmpty(count1s)) { + if (ObjectUtils.isNotEmpty(insProduct.getManHour())) { + //鍏堝垹鍚庡姞(宸ユ椂璁板綍鏈�鍚庝竴娆′繚瀛樼殑鏃堕棿) + auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() + .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId())); AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); if (isWithinRange) { //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 - auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� - auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� - auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 - auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 - LocalDateTime localDateTime = LocalDateTime.now(); - DateTime parse = DateUtil.parse(localDateTime.format(formatter)); - auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 - auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 - } - else { + + } else { //鍔犵彮 - auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� - auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� - auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂 auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 - auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 - LocalDateTime localDateTime = LocalDateTime.now(); - DateTime parse = DateUtil.parse(localDateTime.format(formatter)); - auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 - auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 } - try { - //杩欎釜妫�楠岄」鐩繕娌℃湁濉啓杩囨楠屽�间笖杩欐杩欎釜妫�楠岄」鐩~鍐欑殑妫�楠屽�间笉涓虹┖ - if (CollectionUtils.isEmpty(insProductResultss) && jo.get("insValue") != null - //杩欎釜妫�楠岄」鐩繕娌℃湁濉啓杩囨楠屽�间笖杩欐杩欎釜妫�楠岄」鐩~鍐欑殑璁$畻鍊间笉涓虹┖浣嗘槸妫�楠屽�间负绌� - || CollectionUtils.isEmpty(insProductResultss) && jo.get("insValue") == null && jo.get("comValue") != null - //杩欎釜妫�楠岄」鐩湁濉啓杩囨楠屽�间笖杩欐濉啓鐨勬楠屽�煎拰鍘熸潵鐨勬楠屽�间笉鐩哥瓑,涓旇繖娆$殑妫�楠屽�间笉绛変簬绌� - || (CollectionUtils.isNotEmpty(insProductResultss) && !insProductResultss.get(0).getInsValue().equals(result.getInsValue()) && jo.get("insValue") != null) - //杩欎釜妫�楠岄」鐩湁濉啓杩囨楠屽�间笖杩欐濉啓鐨勮绠楀�煎拰鍘熸潵鐨勮绠楀�间笉鐩哥瓑,涓旇繖娆$殑璁$畻鍊间笉绛変簬绌�,涓旇繖娆$殑妫�楠屽�肩瓑浜庣┖ - || (CollectionUtils.isNotEmpty(insProductResultss) && !insProductResultss.get(0).getComValue().equals(result.getComValue()) && jo.get("insValue") == null && jo.get("comValue") != null)) { - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); - } - } catch (Exception e) { - System.out.println("宸ユ椂鏂板涓嶆垚鍔�!!!"); - } + auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� + auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� + auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 + auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 + LocalDateTime localDateTime = LocalDateTime.now(); + DateTime parse = DateUtil.parse(localDateTime.format(formatter)); + auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 + auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ + auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」鐩甶d + auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); } } } - InsSample insSample = insSampleMapper.selectById(insProductMapper.selectById(insProduct.getId()).getInsSampleId()); insSample.setInsState(1); Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() @@ -783,22 +725,9 @@ if (res != null) { int pId = Integer.parseInt(res.replaceAll("\\D+", "")); InsProduct insProduct = insProductMapper.selectById(pId); - // 閫氳繃pId 鑾峰彇褰撳墠鏍锋湰id - int sampleId = insProductMapper.selectById(pId).getInsSampleId(); // 閫氳繃鏍锋湰id鑾峰彇璁㈠崟id - int orderId = insSampleMapper.selectById(sampleId).getInsOrderId(); - // 閫氳繃璁㈠崟id鏌ユ壘鎵�鏈夋牱鏈琲d - List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList()); - // 閫氳繃妫�鏌ユ瘡涓�涓牱鏈琲d鏌ュ埌灞炰簬妫�楠岄」缁撹 is null 鎴栬�� =2 鐨勬暟閲� - Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, sampleIds) - .and(wrapper -> wrapper - .isNull(InsProduct::getInsResult) - .or() - .eq(InsProduct::getInsResult, 2) - ) - .eq(InsProduct::getSonLaboratory, insProduct.getSonLaboratory()) - .eq(InsProduct::getState, 1)); + int orderId = insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId(); + int count = insProductMapper.selectInsProductCountByOrderId(orderId); if (count == 0) { insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, orderId) @@ -810,6 +739,247 @@ e.printStackTrace(); return null; }); + } + + //鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹� + @Override + public List<Integer> saveInsContext2(InsProductResultDto insProductResultDtos) { + if (ObjectUtils.isEmpty(insProductResultDtos.getFrequency())){ + throw new ErrorException("棰戠巼涓嶈兘涓虹┖"); + } + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + //鏌ヨ妫�楠屽崟淇℃伅 + InsOrder insOrder = insOrderMapper.selectById(insProductResultDtos.getOrderId()); + //鏌ヨ鏍峰搧淇℃伅 + InsSample insSample = insSampleMapper.selectById(insProductResultDtos.getSampleId()); + List<Integer> list = new ArrayList<>(); + /*鏂板妫�楠岄」鐩楠屽�艰褰曡〃(閲囧彇鍏堝垹鍚庡)*/ + insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() + .in(InsProductResult2::getInsProductId, insProductResultDtos.getInsProductResult2s().stream().map(InsProductResult2::getInsProductId).distinct().collect(Collectors.toList())) + .eq(InsProductResult2::getFrequency, insProductResultDtos.getFrequency())); + for (InsProductResult2 insProductResult2 : insProductResultDtos.getInsProductResult2s()) { + InsProduct insProduct = new InsProduct(); + insProduct.setId(insProductResult2.getInsProductId());//椤圭洰id + InsProductResult2 result2 = new InsProductResult2(); + result2.setInsProductId(insProductResult2.getInsProductId()); + //棰戠巼 + result2.setFrequency(insProductResultDtos.getFrequency()); + //棰戠偣 + if (insProductResult2.getOften() != null) { + result2.setOften(insProductResult2.getOften()); + } + //绔彛 + if (insProductResult2.getPort() != null) { + result2.setPort(insProductResult2.getPort()); + } + //瑙掑害 + if (insProductResult2.getAngle() != null) { + result2.setAngle(insProductResult2.getAngle()); + } + //璁惧缂栧彿 + if (insProductResult2.getEquipValue() != null) { + result2.setEquipValue(insProductResult2.getEquipValue()); + } + //璁惧鍚嶇О + if (insProductResult2.getEquipName() != null) { + result2.setEquipName(insProductResult2.getEquipName()); + } + insProduct = insProductMapper.selectById(insProduct.getId()); + //鍊� + if (insProductResult2.getValue() != null) { + result2.setValue(insProductResult2.getValue()); + //缁撹 + int ressult = 1; + String valueStr = insProductResult2.getValue(); + if (!insProduct.getAsk().contains(",")) { + if (!isValueValid(valueStr, new String[]{insProduct.getAsk()})) { + ressult = 0; //涓嶅悎鏍� + } + } else { + // 濡傛灉瑕佹眰鍊兼槸(2掳鈮�20,7掳鈮�25,12掳鈮�25)杩欑鎯呭喌 + String[] askParts = insProduct.getAsk().split(","); + String[] angles = insProductResult2.getAngle().split(","); + for (String s : askParts) { + String[] askSplit = s.split("掳"); + String angleKey = askSplit[0]; + String angleValue = askSplit[1]; + + for (int i = 0; i < angles.length; i++) { + if (angles[i].split("掳")[0].equals(angleKey)) { + try { + String s1 = valueStr.substring(1, valueStr.length() - 1).split("\\],\\[")[i]; + if (!s1.startsWith("[")) { + s1 = "[" + s1; + } + if (!s1.endsWith("]")) { + s1 = s1 + "]"; + } + if (!isValueValid("[" + s1 + "]", new String[]{angleValue})) { + ressult = 0; // 涓嶅悎鏍� + break; + } + }catch (Exception e) { + }finally { + continue; + } + + } + } + } + } + result2.setResult(ressult); + list.add(ressult); + } + result2.setCreateUser(userId); + result2.setUpdateUser(userId); + insProductResult2Mapper.insert(result2); + insProduct.setUpdateUser(userId); + insProductMapper.updateById(insProduct); + insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId())); + /*鐢熸垚浜ч噺宸ユ椂*/ + //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 + //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 + LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT); + PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery() + .eq(PerformanceShift::getUserId, userId) + .eq(PerformanceShift::getWorkTime, today)); + if (ObjectUtils.isNotEmpty(performanceShift)) { + ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift())); + if (ObjectUtils.isNotEmpty(shiftTime)) { + DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm"); + LocalTime now = LocalTime.now(); + LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma); + LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma); + // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛� + boolean isWithinRange; + if (endTime.isAfter(startTime)) { + // 涓嶈法澶╃殑鎯呭喌 + isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime); + } else { + // 璺ㄥぉ鐨勬儏鍐� + isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime); + } + if (ObjectUtils.isNotEmpty(insProduct.getManHour())) { + //鍏堝垹鍚庡姞(宸ユ椂璁板綍鏈�鍚庝竴娆′繚瀛樼殑鏃堕棿) + auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() + .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId())); + AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); + if (isWithinRange) { + //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 + auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� + auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� + auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� + auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 + + } else { + //鍔犵彮 + auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 + auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂 + auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 + auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 + } + auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� + auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� + auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 + auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 + LocalDateTime localDateTime = LocalDateTime.now(); + DateTime parse = DateUtil.parse(localDateTime.format(formatter)); + auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 + auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ + auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」鐩甶d + auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); + } + } + } + /*鏇存柊鏍峰搧鐨勬楠岀姸鎬�*/ + insSample.setInsState(1); + Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId, insSample.getId())); + Long l1 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId, insSample.getId()) + .and(wrapper -> wrapper + .isNotNull(InsProduct::getInsResult) + .or() + .ne(InsProduct::getInsResult, 2) + )); + if (l == l1) { + //濡傛灉鎵�鏈夐」鐩兘鏈夌粨璁�,閭d箞璇ユ牱鍝佺姸鎬佸凡妫� + insSample.setInsState(2); + } + insSampleMapper.updateById(insSample); + } + /*鍒ゆ柇璇ョ珯鐐圭殑妫�楠岄」鐩槸鍚﹀叏閮ㄥ凡妫�*/ + int count = insProductMapper.selectInsProductCountByOrderId(insProductResultDtos.getOrderId()); + if (count == 0) { + insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId()) + .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory()) + .set(InsOrderState::getInsState, 2)); + } + return list; + } + + //瑙f瀽瑕佹眰鍊肩殑鏍煎紡 + private boolean getResult(double s, String ask) { + // 澶勭悊卤鑼冨洿鐨勬潯浠� + if (ask.contains("卤")) { + Pattern pattern = Pattern.compile("(\\d+)卤(\\d+)"); + Matcher matcher = pattern.matcher(ask); + if (matcher.matches()) { + double center = Double.parseDouble(matcher.group(1)); + double tolerance = Double.parseDouble(matcher.group(2)); + return Math.abs(s - center) <= tolerance; + } + } + // 澶勭悊鍏朵粬姣旇緝鏉′欢 + if (ask.startsWith(">")) { + double threshold = Double.parseDouble(ask.substring(1)); + return s > threshold; + } else if (ask.startsWith("鈮�")) { + double threshold = Double.parseDouble(ask.substring(1)); + return s >= threshold; + } else if (ask.startsWith("<")) { + double threshold = Double.parseDouble(ask.substring(1)); + return s < threshold; + } else if (ask.startsWith("鈮�")) { + double threshold = Double.parseDouble(ask.substring(1)); + return s <= threshold; + } else if (ask.equals("=")) { + double exactValue = Double.parseDouble(ask.substring(1)); + return s == exactValue; + } + // 澶勭悊涓嶆敮鎸佺殑鏉′欢 + throw new IllegalArgumentException("鏈煡鏍煎紡瑕佹眰鍊艰妫�鏌�" + ask); + } + + //灏嗗墠绔紶杩囨潵鐨勫�艰浆鎹㈡垚鏁扮粍鐨勫舰寮� + private String[] parseValues(String valueStr) { + String trimmedStr = valueStr.substring(1, valueStr.length() - 1); + return Arrays.stream(trimmedStr.split("\\],\\[")) + .map(s -> s.substring(1, s.length() - 1).split(",")) + .flatMap(Arrays::stream) + .map(s -> s.replace("\"", "")) + .toArray(String[]::new); + } + + //鍒よ鍚堟牸涓庝笉鍚堟牸 + private boolean isValueValid(String valueStr, String[] valuesToCheck) { + for (String s : parseValues(valueStr)) { + if (ObjectUtils.isEmpty(s)) { + continue; + } + double numericValue = Double.parseDouble(s); + boolean valid = Arrays.stream(valuesToCheck) + .allMatch(v -> getResult(numericValue, v)); + if (!valid) { + return false; + } + } + return true; } //浜ゆ帴 @@ -941,8 +1111,7 @@ insOrderState.setLaboratory(minElement); insOrderState.setInsState(0); insOrderStateMapper.insert(insOrderState); - } - else { + } else { //濡傛灉缁х画璇曢獙娌℃湁鍏朵粬绔欑偣鐨勬楠屼换鍔¢偅灏辩粨鏉熻瘯楠� verifyPlan(orderId, laboratory, 2, tell); } @@ -1626,6 +1795,24 @@ String str = ""; int count = 0; for (InsProduct product : insProducts) { + //杈愬皠璇曢獙妫�娴嬬殑妫�楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩� + if (product.getInspectionItem().equals("杈愬皠璇曢獙妫�娴�")) { + product.setInsResult(3);//涓嶅垽瀹� + insProductMapper.updateById(product); + continue; + } + //鐢佃矾璇曢獙鐨勬楠岄」鐩�,闇�瑕佸湪鎻愪氦鐨勬椂鍊欏啀鍘昏祴鍊煎悎鏍间笌涓嶅悎鏍� + if (product.getInspectionItem().equals("鐢佃矾璇曢獙")) { + List<Integer> collect = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getInsProductId, product.getId())).stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList()); + if (collect.contains(0)) { + product.setInsResult(0);//涓嶅悎鏍� + } else { + product.setInsResult(1);//鍚堟牸 + } + insProductMapper.updateById(product); + continue; + } count++; str += "<br/>" + count + "锛�" + product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>"; } @@ -1643,7 +1830,7 @@ InsOrder insOrder = insOrderMapper.selectById(orderId); if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("璐ㄩ噺閮�")) { verifyPlan(orderId, laboratory, 2, null); - }else { + } else { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); //LIMS绯荤粺娑堟伅鎺ㄩ�� InformationNotification info = new InformationNotification(); -- Gitblit v1.9.3