From 7374d150b7f08d4b126d3d0fde57ab55febb53dd Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期三, 05 三月 2025 09:48:24 +0800 Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/lims-ruoyi-after into dev_cr --- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 395 +++++++++++++++++++++---------------------------------- 1 files changed, 151 insertions(+), 244 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 66ce538..7e74e76 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 @@ -2,8 +2,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -44,19 +42,20 @@ import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo; import com.ruoyi.inspect.vo.InsOrderPlanVO; -import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper; import com.ruoyi.performance.mapper.PerformanceShiftMapper; import com.ruoyi.performance.mapper.ShiftTimeMapper; import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours; +import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary; import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursService; +import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService; import com.ruoyi.system.mapper.CustomMapper; import com.ruoyi.system.mapper.UserMapper; import com.ruoyi.system.service.ISysDictTypeService; import com.ruoyi.system.service.InformationNotificationService; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.*; -import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; import org.springframework.mock.web.MockMultipartFile; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; @@ -69,13 +68,10 @@ import java.math.RoundingMode; import java.nio.file.Files; import java.nio.file.Paths; -import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; @@ -117,11 +113,9 @@ @Resource private InsProductUserMapper insProductUserMapper; @Resource - private InsUnPassService insUnPassService; - @Resource - private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; - @Resource private AuxiliaryOutputWorkingHoursService auxiliaryOutputWorkingHoursService; + @Resource + private AuxiliaryOutputWorkingHoursTemporaryService auxiliaryOutputWorkingHoursTemporaryService; @Resource private InformationNotificationService informationNotificationService; @Resource @@ -130,7 +124,6 @@ private CustomMapper customMapper; @Value("${file.path}") private String imgUrl; - @Resource private InsOrderFileMapper insOrderFileMapper; @Resource @@ -149,8 +142,7 @@ private InsOrderFactoryVerifyMapper insOrderFactoryVerifyMapper; @Resource private InsOrderFactoryVerifyItemService insOrderFactoryVerifyItemService; - @Value("${file.licenseUrl}") - private String licenseUrl; + @Resource private SpotCheckQuarterItemMapper spotCheckQuarterItemMapper; @Resource @@ -161,7 +153,8 @@ private InsOrderDeviceRecordService insOrderDeviceRecordService; @Resource private ISysDictTypeService iSysDictTypeService; - + @Resource + private InsOrderRatesService insOrderRatesService; @Override public IPage<InsOrderPlanVO> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { @@ -500,13 +493,6 @@ } } - //鏌ヨ妫�楠屽崟淇℃伅 - // 娣诲姞宸ユ椂 - InsProduct finalInsProduct = insProductMapper.selectById(product.getId()); - threadPoolTaskExecutor.execute(() -> { - InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId()); - this.addAuxiliary(userId, finalInsProduct, insOrder); - }); } }); String sampleIdStr = insContext.keySet().stream().findFirst().orElse(null); @@ -599,19 +585,19 @@ private void getTemplateThing(InsOrder order, List<InsProduct> insProducts) { Set<Integer> set = new HashSet<>(); // 妫�楠岄」鍒嗙被+妫�楠岄」+妫�楠屽瓙椤圭殑鎷兼帴 - List<String> itemNameList = insProducts.stream().map(insProduct -> { - String itemName = ""; - if (StringUtils.isNotBlank(insProduct.getInspectionItemClass())) { - itemName += insProduct.getInspectionItemClass().trim(); - } - if (StringUtils.isNotBlank(insProduct.getInspectionItem())) { - itemName += insProduct.getInspectionItem().trim(); - } - if (StringUtils.isNotBlank(insProduct.getInspectionItemSubclass())) { - itemName += insProduct.getInspectionItemSubclass().trim(); - } - return itemName; - }).collect(Collectors.toList()); +// List<String> itemNameList = insProducts.stream().map(insProduct -> { +// String itemName = ""; +// if (StringUtils.isNotBlank(insProduct.getInspectionItemClass())) { +// itemName += insProduct.getInspectionItemClass().trim(); +// } +// if (StringUtils.isNotBlank(insProduct.getInspectionItem())) { +// itemName += insProduct.getInspectionItem().trim(); +// } +// if (StringUtils.isNotBlank(insProduct.getInspectionItemSubclass())) { +// itemName += insProduct.getInspectionItemSubclass().trim(); +// } +// return itemName; +// }).collect(Collectors.toList()); // 鏌ヨ璁㈠崟鐘舵�佸垽鏂槸鍚︽槸鏌ュ巻鍙叉ā鏉� if (order.getIsFirstSubmit() != null && order.getIsFirstSubmit().equals(1)) { InsOrderState insOrderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() @@ -632,11 +618,8 @@ thing = one.getThing(); if (StrUtil.isNotEmpty(thing)) { thing = GZipUtil.uncompress(thing); - JSONObject sheet = JSON.parseObject(JSON.toJSONString(JSON.parseArray(JSON.toJSONString(JSON.parseObject(thing).get("data"))).get(0))); - // 娓呴櫎娌℃湁鍏宠仈鐨勬楠岄」 - eliminateItem(sheet, itemNameList); - - JSONObject config = JSON.parseObject(JSON.toJSONString(sheet.get("config"))); + JSONObject sheet = JSON.parseObject(thing).getJSONArray("data").getJSONObject(0); + JSONObject config = sheet.getJSONObject("config"); List<JSONObject> cellData = JSON.parseArray(JSON.toJSONString(sheet.get("celldata")), JSONObject.class); Map<String, Object> style = new HashMap<>(); style.put("rowlen", config.get("rowlen")); @@ -659,10 +642,8 @@ thing = standardTemplateService.getStandTempThingById(product.getTemplateId()); } if (StrUtil.isNotEmpty(thing)) { - JSONObject sheet = JSON.parseObject(JSON.toJSONString(JSON.parseArray(JSON.toJSONString(JSON.parseObject(thing).get("data"))).get(0))); - // 娓呴櫎娌℃湁鍏宠仈鐨勬楠岄」 - eliminateItem(sheet, itemNameList); - JSONObject config = JSON.parseObject(JSON.toJSONString(sheet.get("config"))); + JSONObject sheet = JSON.parseObject(thing).getJSONArray("data").getJSONObject(0); + JSONObject config = sheet.getJSONObject("config"); List<JSONObject> cellData = JSON.parseArray(JSON.toJSONString(sheet.get("celldata")), JSONObject.class); Map<String, Object> style = new HashMap<>(); style.put("rowlen", config.get("rowlen")); @@ -675,7 +656,7 @@ } /** - * 娓呴櫎娌℃湁浣跨敤鐨勬楠岄」 + * todo: 娓呴櫎娌℃湁浣跨敤鐨勬楠岄」 * @param sheet * @param itemNameList */ @@ -762,7 +743,7 @@ @Transactional(rollbackFor = Exception.class) public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) { InsOrder order = insOrderMapper.selectById(orderId); - // 鍒ゆ柇鏄惁鏈夐噸澶嶇紪鍙�, 鏈夐噸澶嶇紪鍙峰仛鎻愰啋 + // 1. 鍒ゆ柇鏄惁鏈夐噸澶嶇紪鍙�, 鏈夐噸澶嶇紪鍙峰仛鎻愰啋 Long codeCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery() .ne(InsOrder::getState, -1) .ne(InsOrder::getIfsInventoryId, order.getIfsInventoryId()) @@ -771,7 +752,7 @@ throw new ErrorException("褰撳墠缂栧彿鏈夐噸澶�, 璇峰厛鍘讳慨鏀归噸澶嶇紪鍙�"); } - // 鍒ゆ柇璇ヨ鍗曟槸鍚︽槸绗竴娆$敓浜� + // 2. 鍒ゆ柇璇ヨ鍗曟槸鍚︽槸绗竴娆$敓浜�(鍚庣画鎶ュ憡鐢熸垚鍙彇绗竴娆℃彁浜ゆ椂闂�) if (!(order.getIsFirstSubmit() != null && order.getIsFirstSubmit().equals(1))) { insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate() .eq(InsOrder::getId, orderId) @@ -779,11 +760,12 @@ .set(InsOrder::getFirstSubmitDate, LocalDateTime.now())); } + // 3. 鍒ゆ柇鏄惁鏈夋湭妫�椤� List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() .eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); - List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); + List<Integer> InsSampleIds = insSamples.stream().map(InsSample::getId).collect(Collectors.toList()); List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, ids) + .in(InsProduct::getInsSampleId, InsSampleIds) .eq(InsProduct::getSonLaboratory, laboratory) .eq(InsProduct::getState, 1) .and(wrapper -> wrapper @@ -791,10 +773,8 @@ .or() .eq(InsProduct::getInsResult, 2) ) - .isNull(InsProduct::getInsFiberId) - .isNull(InsProduct::getInsFibersId) .ne(InsProduct::getIsBinding, 1)); - insProducts.addAll(insProductMapper.selectFiberInsProduct(ids, laboratory)); + insProducts.addAll(insProductMapper.selectFiberInsProduct(InsSampleIds, laboratory)); if (insProducts.size() > 0) { String str = ""; int count = 0; @@ -807,21 +787,21 @@ throw new ErrorException("<strong>瀛樺湪寰呮楠岀殑椤圭洰锛�</strong><br/>" + str); } } + + // 4.淇敼妫�娴嬬粨鏋� insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, orderId) .eq(InsOrderState::getLaboratory, laboratory) .set(InsOrderState::getInsTime, LocalDateTime.now()) .set(InsOrderState::getInsState, 3) .set(InsOrderState::getVerifyUser, verifyUser)); - // 鍙戦�佹秷鎭� + + // 5.鍙戦�佹秷鎭�氱煡缁欏鏍镐汉 // 鏌ヨ褰撳墠浜轰俊鎭� Integer userId = SecurityUtils.getUserId().intValue(); String userName = insProductMapper.selectUserById(userId).get("name"); - // 鏌ヨ鍙戦�佷汉淇℃伅 String sendUserAccount = insProductMapper.selectUserById(verifyUser).get("account"); - - InformationNotification info = new InformationNotification(); info.setCreateUser(userName); info.setMessageType("2"); @@ -833,15 +813,16 @@ info.setJumpPath("b1-inspect-orderPlan-review"); informationNotificationService.addInformationNotification(info); - //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� + // 6.澶嶆牳浜�--鏂板妫�楠屽崟鐩稿叧璐熻矗浜� InsSampleUser insSampleUser = new InsSampleUser(); insSampleUser.setUserId(verifyUser); insSampleUser.setInsSampleId(orderId); insSampleUser.setState(1); insSampleUser.setSonLaboratory(laboratory); insSampleUserMapper.insert(insSampleUser); - /*鏍¢獙涓�涓媟esult琛�*/ - CompletableFuture.supplyAsync(() -> { + + // 7.鏍¢獙涓�涓媟esult琛�(閬垮厤鍑虹幇澶氫釜妫�楠岄」缁撴灉) + threadPoolTaskExecutor.execute(() -> { List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); for (Integer ip : ips) { List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() @@ -852,88 +833,73 @@ } } } - return null; }); - // 鎻愪氦鐢熸垚鎶ュ憡 + // 8.鎻愪氦鐢熸垚鎶ュ憡 this.generateReport(orderId); - // 娣诲姞涓存椂pdf鐢熸垚鍦板潃 + // 9.娣诲姞涓存椂pdf鐢熸垚鍦板潃 InsReport report = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery() .eq(InsReport::getInsOrderId, orderId)); String tempUrlPdf = this.wordToPdfTemp(report.getUrl().replace("/word", wordUrl)); report.setTempUrlPdf("/word/" + tempUrlPdf); insReportMapper.updateById(report); - // 鏌ヨ璁㈠崟 - InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery() - .eq(InsSample::getInsOrderId, orderId) - .last("limit 1")); - // 鏌ヨ鍘熸潗鏂� - IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId()); + // 10.鍘熷璁板綍妯℃澘澶嶅埗(娣诲姞澶囦唤, 閬垮厤淇敼鍘熷妯℃澘褰卞搷鍒板凡缁忓畬鎴愮殑鍗曞瓙) + this.templateCopy(orderId, InsSampleIds); - // 鍒犻櫎鍘熸湰妯℃澘 - insOrderStandardTemplateService.remove(Wrappers.<InsOrderStandardTemplate>lambdaQuery() - .eq(InsOrderStandardTemplate::getInsOrderId, orderId)); - // 澶嶅埗妯℃澘 - Set<Integer> set = new HashSet<>(); - List<InsProduct> insProductList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, ids) - .select(InsProduct::getTemplateId)); - - for (InsProduct product : insProductList) { - // 鏌ヨ妯℃澘id - if (product.getTemplateId() != null && set.add(product.getTemplateId())) { - StandardTemplate standardTemplate = standardTemplateService.getById(product.getTemplateId()); - if (standardTemplate != null) { - InsOrderStandardTemplate insOrderStandardTemplate = new InsOrderStandardTemplate(); - insOrderStandardTemplate.setInsOrderId(orderId); - insOrderStandardTemplate.setTemplateId(standardTemplate.getId()); - insOrderStandardTemplate.setNumber(standardTemplate.getNumber()); - insOrderStandardTemplate.setName(standardTemplate.getName()); - insOrderStandardTemplate.setThing(standardTemplate.getThing()); - insOrderStandardTemplateService.save(insOrderStandardTemplate); - } - } - } - - // 鎴愬搧鎶芥牱娣诲姞鍚堟牸鐘舵�� + // 11.鎴愬搧鎶芥牱娣诲姞鍚堟牸鐘舵�� // 鍒ゆ柇鏄惁鏈夋娊鏍蜂俊鎭� if (order.getQuarterItemId() != null) { // 鍒ゆ柇鏄惁鏈変笉鍚堟牸 - Long unqualifiedCount = 0L; - if (CollectionUtils.isNotEmpty(insSamples)) { - unqualifiedCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList())) - .eq(InsProduct::getInsResult, 0)); - - // 鍒ゆ柇濡傛灉鏈変笉鍚堟牸鐨勬楠岄」, 鍒ゆ柇鏈夋病鏈夋楠岄」澶嶆祴, 澶嶆牳鍚堟牸涔熺畻鍚堟牸閫氳繃 - if (!unqualifiedCount.equals(0L)) { - List<InsProduct> productList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList())) - .eq(InsProduct::getInsResult, 0)); - - boolean flag = true; - for (InsProduct insProduct : productList) { - Long unqualifiedProductCount = insUnqualifiedRetestProductMapper.selectCount(Wrappers.<InsUnqualifiedRetestProduct>lambdaQuery() - .eq(InsUnqualifiedRetestProduct::getInsProductId, insProduct.getId()) - .ne(InsUnqualifiedRetestProduct::getInsResult, 0)); - if (unqualifiedProductCount != 2) { - flag = false; - } - } - if (flag) { - unqualifiedCount = 0L; - } - } - } - spotCheckQuarterItemMapper.update(null, Wrappers.<SpotCheckQuarterItem>lambdaUpdate() - .eq(SpotCheckQuarterItem::getQuarterItemId, order.getQuarterItemId()) - .set(SpotCheckQuarterItem::getResult, unqualifiedCount.equals(0L) ? "鍚堟牸" : "涓嶅悎鏍�")); - + this.addProductSpotCheck(insSamples, order); } - // 鍙戦�佷紒涓氬井淇¢�氱煡 + // 12.娣诲姞宸ユ椂 + // 鍒犻櫎鍘熸湰璁㈠崟宸ユ椂 + auxiliaryOutputWorkingHoursService.remove(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() + .eq(AuxiliaryOutputWorkingHours::getOrderId, orderId)); + // 鏌ヨ宸ユ椂鏆傚瓨 + List<AuxiliaryOutputWorkingHoursTemporary> hoursTemporaries = auxiliaryOutputWorkingHoursTemporaryService.list(Wrappers.<AuxiliaryOutputWorkingHoursTemporary>lambdaQuery() + .eq(AuxiliaryOutputWorkingHoursTemporary::getOrderId, orderId)); + List<AuxiliaryOutputWorkingHours> outputWorkingHours = hoursTemporaries.stream().map(hoursTemporary -> { + AuxiliaryOutputWorkingHours workingHours = new AuxiliaryOutputWorkingHours(); + BeanUtil.copyProperties(hoursTemporary, workingHours); + workingHours.setId(null); + return workingHours; + }).collect(Collectors.toList()); + auxiliaryOutputWorkingHoursService.saveBatch(outputWorkingHours); + + // 13.娣诲姞璁㈠崟璐圭敤缁熻淇℃伅 + List<InsProduct> productList = insProductMapper.selectProductByOrderId(orderId); + // 鍒犻櫎鍘熸湰璐圭敤淇℃伅 + insOrderRatesService.remove(Wrappers.<InsOrderRates>lambdaQuery() + .eq(InsOrderRates::getInsOrderId, orderId)); + List<InsOrderRates> orderRatesList = productList.stream().map(insProduct -> { + InsOrderRates insOrderRates = new InsOrderRates(); + insOrderRates.setInsOrderId(orderId); + insOrderRates.setInsSampleId(insProduct.getInsSampleId()); + insOrderRates.setInsProductId(insProduct.getId()); + insOrderRates.setSampleCode(insProduct.getSampleCode()); + insOrderRates.setEntrustCode(order.getEntrustCode()); + insOrderRates.setInspectionItemClass(insProduct.getInspectionItemClass()); + insOrderRates.setInspectionItem(insProduct.getInspectionItem()); + insOrderRates.setInspectionItemSubclass(insProduct.getInspectionItemSubclass()); + insOrderRates.setCableTag(insProduct.getCableTag()); + insOrderRates.setRates(insProduct.getRates()); + insOrderRates.setManHourGroup(insProduct.getManHourGroup()); + return insOrderRates; + }).collect(Collectors.toList()); + insOrderRatesService.saveBatch(orderRatesList); + + + // 14.鍙戦�佷紒涓氬井淇¢�氱煡 + // 鏌ヨ鍘熸潗鏂� + IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId()); + // 鏌ヨ鏍峰搧淇℃伅 + InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery() + .eq(InsSample::getInsOrderId, orderId) + .last("limit 1")); threadPoolTaskExecutor.execute(() -> { String message = ""; message += "妫�楠屼换鍔″鏍搁�氱煡"; @@ -952,7 +918,7 @@ } }); - // ifs绉诲簱 + // 15.ifs绉诲簱(鍘熸潗鏂欓渶瑕佽繘琛岀Щ搴撴搷浣�) --> 鏈�鍚庢墽琛�,鍥犱负澶辫触鏃犳硶鍥炴粴 if (ifsInventoryQuantity != null) { // 鐧昏妫�楠岀粨鏋� // 鍒ゆ柇鏄惁鏈変笉鍚堟牸, 鏈変笉鍚堟牸涓嶈兘绉诲簱 @@ -976,56 +942,30 @@ return 1; } - public int pxToCm(int px) { - return px / 9; - } + private void templateCopy(Integer orderId, List<Integer> ids) { + // 鍒犻櫎鍘熸湰妯℃澘 + insOrderStandardTemplateService.remove(Wrappers.<InsOrderStandardTemplate>lambdaQuery() + .eq(InsOrderStandardTemplate::getInsOrderId, orderId)); + // 澶嶅埗妯℃澘 + Set<Integer> set = new HashSet<>(); + List<InsProduct> insProductList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, ids) + .select(InsProduct::getTemplateId)); - // 鑾峰彇涓や釜localDateTime鐨勬瘡涓�澶� - public static List<LocalDateTime> getLocalDateTimesBetween(LocalDateTime start, LocalDateTime end) { - List<LocalDateTime> localDateTimes = new ArrayList<>(); - LocalDate currentDate = start.toLocalDate(); - LocalDateTime currentLocalDateTime = start; - while (!currentDate.isAfter(end.toLocalDate())) { - localDateTimes.add(currentLocalDateTime); - currentLocalDateTime = currentLocalDateTime.plusDays(1); - currentDate = currentDate.plusDays(1); - } - return localDateTimes; - } - - public static String getWeek(String dayStr) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - try { - Date date = sdf.parse(dayStr); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); - int day = calendar.get(Calendar.DAY_OF_MONTH); - return getWeekDay(dayOfWeek); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - public static String getWeekDay(int dayOfWeek) { - switch (dayOfWeek) { - case Calendar.MONDAY: - return "鍛ㄤ竴"; - case Calendar.TUESDAY: - return "鍛ㄤ簩"; - case Calendar.WEDNESDAY: - return "鍛ㄤ笁"; - case Calendar.THURSDAY: - return "鍛ㄥ洓"; - case Calendar.FRIDAY: - return "鍛ㄤ簲"; - case Calendar.SATURDAY: - return "鍛ㄥ叚"; - case Calendar.SUNDAY: - return "鍛ㄦ棩"; - default: - return "鏈煡"; + for (InsProduct product : insProductList) { + // 鏌ヨ妯℃澘id + if (product.getTemplateId() != null && set.add(product.getTemplateId())) { + StandardTemplate standardTemplate = standardTemplateService.getById(product.getTemplateId()); + if (standardTemplate != null) { + InsOrderStandardTemplate insOrderStandardTemplate = new InsOrderStandardTemplate(); + insOrderStandardTemplate.setInsOrderId(orderId); + insOrderStandardTemplate.setTemplateId(standardTemplate.getId()); + insOrderStandardTemplate.setNumber(standardTemplate.getNumber()); + insOrderStandardTemplate.setName(standardTemplate.getName()); + insOrderStandardTemplate.setThing(standardTemplate.getThing()); + insOrderStandardTemplateService.save(insOrderStandardTemplate); + } + } } } @@ -1164,7 +1104,6 @@ * @param orderId */ private void generateReport(Integer orderId) { - List<InsUnPass> insUnPasses = new ArrayList<>(); /*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/ //杩欓噷鐨刬nsSamples鏄鍗曚笅鐨勬墍鏈夋牱鍝佸寘鎷�("/") List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)); @@ -1180,25 +1119,7 @@ insSample.setInsResult(1); } insSampleMapper.updateById(insSample); - /*澶嶆牳閫氳繃鍚庯紝灏嗕笉鍚堟牸鐨勯」鐩俊鎭坊鍔犲埌ins_un_pass琛ㄤ腑*/ - for (InsProduct insProduct : insProducts) { - if (insProduct.getInsResult() == 0) { - InsUnPass insUnPass = new InsUnPass(); - insUnPass.setId(null); - insUnPass.setModel(insSample.getModel()); - insUnPass.setSample(insSample.getSample()); - insUnPass.setInspectionItem(insProduct.getInspectionItem()); - insUnPass.setInspectionItemSubclass(insProduct.getInspectionItemSubclass()); - insUnPass.setLastValue(insProduct.getLastValue()); - insUnPass.setEntrustCode(insOrderMapper.selectById(orderId).getEntrustCode()); - List<Integer> userIds = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().eq(InsProductUser::getInsProductId, insProduct.getId())).stream().map(InsProductUser::getCreateUser).distinct().collect(Collectors.toList()); - String name = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(",")); - insUnPass.setName(name); - insUnPasses.add(insUnPass); - } - } } - insUnPassService.saveBatch(insUnPasses); InsOrder insOrder = insOrderMapper.selectById(orderId); // 鎶芥鍙樻垚濮旀墭妫�楠� if (insOrder.getOrderType().equals(InsOrderTypeConstants.SPOT_CHECK)) { @@ -4110,7 +4031,7 @@ } /** - * 淇濆瓨鍏冩闃块噷杩涜揣楠岃瘉鍘熷璁板綍 + * *****淇濆瓨鍏冩闃块噷杩涜揣楠岃瘉鍘熷璁板綍***** * @param insOrderId 璁㈠崟Id * @param examineUserId 澶嶆牳浜篒d * @param writeUserId 妫�楠屽憳Id @@ -4260,7 +4181,7 @@ /** - * 鏍煎紡鍖栬繘鍘傞獙璇佸唴瀹� + * ***鏍煎紡鍖栬繘鍘傞獙璇佸唴瀹�**** * @param basicType * @return */ @@ -4289,7 +4210,7 @@ } /** - * word杞崲pdf + * ***word杞崲pdf*** * @param path * @return */ @@ -4306,11 +4227,10 @@ FileOutputStream os = null; try { //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃 - InputStream is = Files.newInputStream(new File(licenseUrl).toPath()); + InputStream is = new ClassPathResource("/lib/license.xml").getInputStream(); License license = new License(); license.setLicense(is); if (!license.getIsLicensed()) { - System.out.println("License楠岃瘉涓嶉�氳繃..."); return null; } //鐢熸垚涓�涓┖鐨凱DF鏂囦欢 @@ -4338,53 +4258,40 @@ } /** - * 娣诲姞宸ユ椂 - * @param userId - * @param insProduct - * @param insOrder + * *****淇敼鎴愬搧鎶芥牱鐘舵��****** + * @param insSamples + * @param order */ - private synchronized void addAuxiliary(Integer userId, InsProduct insProduct, InsOrder insOrder) { - if (insProduct.getIsBinding().equals(1)) { - return; + private void addProductSpotCheck(List<InsSample> insSamples, InsOrder order) { + Long unqualifiedCount = 0L; + if (CollectionUtils.isNotEmpty(insSamples)) { + unqualifiedCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList())) + .eq(InsProduct::getInsResult, 0)); + + // 鍒ゆ柇濡傛灉鏈変笉鍚堟牸鐨勬楠岄」, 鍒ゆ柇鏈夋病鏈夋楠岄」澶嶆祴, 澶嶆牳鍚堟牸涔熺畻鍚堟牸閫氳繃 + if (!unqualifiedCount.equals(0L)) { + List<InsProduct> productList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList())) + .eq(InsProduct::getInsResult, 0)); + + boolean flag = true; + for (InsProduct insProduct : productList) { + Long unqualifiedProductCount = insUnqualifiedRetestProductMapper.selectCount(Wrappers.<InsUnqualifiedRetestProduct>lambdaQuery() + .eq(InsUnqualifiedRetestProduct::getInsProductId, insProduct.getId()) + .ne(InsUnqualifiedRetestProduct::getInsResult, 0)); + if (unqualifiedProductCount != 2) { + flag = false; + } + } + if (flag) { + unqualifiedCount = 0L; + } + } } - - //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 - 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 - - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); - - } + spotCheckQuarterItemMapper.update(null, Wrappers.<SpotCheckQuarterItem>lambdaUpdate() + .eq(SpotCheckQuarterItem::getQuarterItemId, order.getQuarterItemId()) + .set(SpotCheckQuarterItem::getResult, unqualifiedCount.equals(0L) ? "鍚堟牸" : "涓嶅悎鏍�")); } } -- Gitblit v1.9.3