From cb3ec598dc18e66b70a2cc9f7181c8be5bcf6e57 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期二, 01 四月 2025 08:50:16 +0800 Subject: [PATCH] 检验项预警非文字检验项都要预警 --- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 112 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 60 insertions(+), 52 deletions(-) diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java index 8daa256..b8bb4a0 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java @@ -72,6 +72,7 @@ import java.math.RoundingMode; import java.nio.file.Files; import java.nio.file.Paths; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; @@ -115,8 +116,6 @@ private InsProductUserMapper insProductUserMapper; @Resource private AuxiliaryOutputWorkingHoursService auxiliaryOutputWorkingHoursService; - @Resource - private AuxiliaryOutputWorkingHoursTemporaryService auxiliaryOutputWorkingHoursTemporaryService; @Resource private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; @Resource @@ -954,7 +953,7 @@ // 鏌ヨifs淇℃伅鑾峰彇鑾峰彇鍓�10涓緵搴斿晢涓�鏍风殑, 妫�楠岄」涓�鏍蜂俊鎭� threadPoolTaskExecutor.execute(() -> { // 娣诲姞鍒嗘瀽鏁版嵁 - addAnalysis(productList, ifsInventoryQuantity, order); + addAnalysis(productList, ifsInventoryQuantity, order, userName); }); @@ -982,13 +981,13 @@ * @param ifsInventoryQuantity * @param order */ - private void addAnalysis(List<InsProduct> productList, IfsInventoryQuantity ifsInventoryQuantity, InsOrder order) { + private void addAnalysis(List<InsProduct> productList, IfsInventoryQuantity ifsInventoryQuantity, InsOrder order, String userName) { for (InsProduct insProduct : productList) { - // todo: 鏆傛椂鍒ゆ柇鏄惁鏄�佸寲 - if (insProduct.getInspectionItem().contains("鑰佸寲") && insProduct.getInsResult().equals(1)) { + // 鍒ゆ柇鏄惁鏄暟鍊肩被鍨� + if (insProduct.getInspectionValueType().equals("1") && insProduct.getInsResult().equals(1)) { List<InsProductDeviationWarningDetail> insProductAnalysisDtoList = insProductMapper.selectAnalysis(insProduct, ifsInventoryQuantity.getSupplierName()); - if (insProductAnalysisDtoList.size() < 10) { + if (insProductAnalysisDtoList.size() < 5) { continue; } @@ -1025,6 +1024,7 @@ deviationWarningDetail.setSampleCode(insProduct.getSampleCode()); deviationWarningDetail.setSupplierName(ifsInventoryQuantity.getSupplierName()); deviationWarningDetail.setTestValue(insProduct.getLastValue()); + deviationWarningDetail.setDetectionTime(insProduct.getCreateTime()); deviationWarningDetail.setIsIssue(1); insProductAnalysisDtoList.add(deviationWarningDetail); @@ -1036,22 +1036,26 @@ insProductDeviationWarningDetailService.saveBatch(insProductAnalysisDtoList); + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 妫�楠岄」棰勮棰勮閫氱煡 + try { + String message = ""; + message += "妫�楠岄」棰勮棰勮閫氱煡"; + message += "\n濮旀墭缂栧彿: " + order.getEntrustCode(); + message += "\n鏍峰搧鍚嶇О: " + order.getSample(); + message += "\n瑙勬牸鍨嬪彿: " + order.getPartDetail(); + message += "\n鎵规鍙�: " + ifsInventoryQuantity.getUpdateBatchNo(); + message += "\n渚涘簲鍟嗗悕绉�: " + ifsInventoryQuantity.getSupplierName(); + message += "\n妫�楠岄」: " + insProduct.getInspectionItem() + insProduct.getInspectionItemSubclass(); + message += "\n鍋忓樊瓒呰繃浜� 10%"; + // 鍙戦�佺粰鎻愪氦浜� + WxCpUtils.inform(userName, message, null); -// String message = ""; -// message += "妫�楠屼换鍔″鏍搁�氱煡"; -// message += "\n鎻愪氦浜�: " + userName; -// message += "\n濮旀墭缂栧彿: " + order.getEntrustCode(); -// message += "\n鏍峰搧鍚嶇О: " + insSample.getModel(); -// message += "\n瑙勬牸鍨嬪彿: " + order.getPartDetail(); -// if (ifsInventoryQuantity != null) { -// message += "\n鎵规鍙�: " + ifsInventoryQuantity.getUpdateBatchNo(); -// } -// //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 鎻愪氦澶嶆牳 -// try { -// WxCpUtils.inform(sendUserAccount, message, null); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } + // todo: 鍙戦�佺粰妫�娴嬩腑蹇冧富浠�(鍥哄畾姝�) + WxCpUtils.inform("ZT-004704", message, null); + } catch (Exception e) { + e.printStackTrace(); + log.error("鍋忓樊棰勮浼佷笟寰俊閫氱煡鎶ラ敊"); + } } } } @@ -1077,7 +1081,10 @@ double target = Double.parseDouble(targetStr); double deviationPercent = Math.abs(target - average) / average * 100; - return deviationPercent; + // 淇濈暀涓や綅灏忔暟 + DecimalFormat df = new DecimalFormat("#.00"); + String formatted = df.format(deviationPercent); + return Double.parseDouble(formatted); } /** @@ -4445,42 +4452,43 @@ return; } - //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 - LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT); - //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜� List<AuxiliaryOutputWorkingHours> count2s = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() .eq(AuxiliaryOutputWorkingHours::getCheck, userId) .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId())); if (CollectionUtils.isNotEmpty(count2s)) { - auxiliaryOutputWorkingHoursMapper.deleteBatchIds(count2s.stream().map(auxiliaryOutputWorkingHours -> auxiliaryOutputWorkingHours.getId()).collect(Collectors.toList())); - } - if (ObjectUtils.isNotEmpty(insProduct.getManHour()) && StringUtils.isNotBlank(insProduct.getLastValue())) { - AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); - auxiliaryOutputWorkingHours.setInspectionItemClass(insProduct.getInspectionItemClass());//妫�娴嬮」鍒嗙被 - auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� - auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� - auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 - auxiliaryOutputWorkingHours.setOrderId(insOrder.getId());//璁㈠崟id - auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� - auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� - auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� - auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂 - 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.setPrice(insProduct.getPrice());//鍗曚环 - auxiliaryOutputWorkingHours.setSampleId(insProduct.getInsSampleId());//鏍峰搧id - auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」id + for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours : count2s) { + auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + } + auxiliaryOutputWorkingHoursService.updateBatchById(count2s); + } else { + if (ObjectUtils.isNotEmpty(insProduct.getManHour()) && StringUtils.isNotBlank(insProduct.getLastValue())) { + AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); + auxiliaryOutputWorkingHours.setInspectionItemClass(insProduct.getInspectionItemClass());//妫�娴嬮」鍒嗙被 + auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� + auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� + auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 + auxiliaryOutputWorkingHours.setOrderId(insOrder.getId());//璁㈠崟id + auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� + auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� + auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� + auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂 + 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.setPrice(insProduct.getPrice());//鍗曚环 + auxiliaryOutputWorkingHours.setSampleId(insProduct.getInsSampleId());//鏍峰搧id + auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」id - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); + auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); + } } } -- Gitblit v1.9.3