From 9f19d3a24f8474bf6f9eb9401888c44b34b381e6 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 21 十一月 2024 14:29:50 +0800 Subject: [PATCH] 第一次改动(检验任务与样品关联,附件与样品关联,报告与样品关联) --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 3976 ++++++++++------------------------------------------------ 1 files changed, 721 insertions(+), 3,255 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 dc57054..69a5707 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 @@ -15,28 +15,20 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.deepoove.poi.XWPFTemplate; -import com.deepoove.poi.config.Configure; -import com.deepoove.poi.config.ConfigureBuilder; -import com.deepoove.poi.data.*; -import com.deepoove.poi.data.style.*; -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.dto.SubmitPlanDto; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.service.*; -import com.yuanchu.mom.utils.JackSonUtil; -import com.yuanchu.mom.utils.MatrixToImageWriter; -import com.yuanchu.mom.utils.QueryWrappers; -import com.yuanchu.mom.utils.RedisUtil; +import com.yuanchu.mom.utils.*; import com.yuanchu.mom.vo.*; -import org.apache.commons.io.IOUtils; -import org.apache.poi.xwpf.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -46,7 +38,6 @@ import javax.servlet.http.HttpServletRequest; import java.io.*; import java.nio.file.Files; -import java.nio.file.Paths; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; @@ -54,14 +45,15 @@ import java.time.format.DateTimeFormatter; import java.util.*; 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; /** * 妫�楠屼换鍔�-涓氬姟瀹炵幇灞� */ @Service +@Transactional(rollbackFor = Exception.class) public class InsOrderPlanServiceImpl extends ServiceImpl<InsOrderMapper, InsOrder> implements InsOrderPlanService { @Resource @@ -81,21 +73,26 @@ @Resource private InsProductMapper insProductMapper; @Resource + private InsOrderUserMapper insOrderUserMapper; + @Resource private ShiftTimeMapper shiftTimeMapper; @Resource private PerformanceShiftMapper performanceShiftMapper; + @Resource + private WarehouseService warehouseService; + @Value("${wordUrl}") private String wordUrl; - @Value("${twoCode}") - private String twoCode; - @Resource - private InsReportMapper insReportMapper; + WordUtils wordUtils; @Resource private InsProductResultMapper insProductResultMapper; + + @Resource + private InsProductResult2Mapper insProductResult2Mapper; @Resource private InsProductUserMapper insProductUserMapper; @@ -107,7 +104,7 @@ AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; @Resource - AuxiliaryOutputWorkingHoursService auxiliaryOutputWorkingHoursService; + QYWXApi qywxApi; @Resource private InformationNotificationService informationNotificationService; @@ -115,53 +112,28 @@ @Resource private UserMapper userMapper; - @Resource - private CustomMapper customMapper; - @Value("${file.path}") private String imgUrl; @Resource - private InsBushingService insBushingService; - - @Resource - private InsBushingMapper insBushingMapper; - - @Resource - private InsFiberMapper insFiberMapper; - - @Resource - private InsFibersMapper insFibersMapper; - - @Resource private InsOrderFileMapper insOrderFileMapper; + + @Resource + FuSheUtils fuSheUtils; @Override public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(InsOrderPlanVO.class)); Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); - User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉 - - //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id - String departLimsId = user.getDepartLimsId(); String laboratory = null; - 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; - } - } String userName = null; - Integer userId = null; if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { - userId = map1.get("userId"); userName = userMapper.selectById(map1.get("userId")).getName(); insOrderPlanDTO.setUserId(null); } String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹� + insOrderPlanDTO.setSonLaboratory(null); IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userName, sonLaboratory, laboratory); map.put("body", insOrderPage); return map; @@ -174,18 +146,7 @@ Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); Integer userId = map1.get("userId"); User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉 - - //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id - String departLimsId = user.getDepartLimsId(); String laboratory = null; - 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()); } @@ -208,21 +169,24 @@ } @Override - public Map<String, Object> doInsOrder(Integer id, String laboratory) { + public Map<String, Object> doInsOrder(Integer sampleId, String laboratory) { + InsSample insSample = insSampleMapper.selectById(sampleId); InsOrder insOrder = new InsOrder(); - insOrder.setId(id); - InsOrder order = insOrderMapper.selectById(id); + insOrder.setId(insSample.getInsOrderId()); + InsOrder order = insOrderMapper.selectById(insSample.getInsOrderId()); if (BeanUtil.isEmpty(order.getInsTime())) { - insOrder.setInsTime(LocalDateTime.now()); + insOrder.setInsTime(LocalDateTime.now());//璁㈠崟鐨勬楠屾椂闂� insOrderMapper.updateById(insOrder); - insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, id).eq(InsOrderState::getLaboratory, laboratory).set(InsOrderState::getInsTime, LocalDateTime.now()).set(InsOrderState::getInsState, 1)); + //鏇存柊妫�楠屼换鍔¤〃鐨勬楠屾椂闂� + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsTime, LocalDateTime.now()) + .set(InsOrderState::getInsState, 1)); } - Map<String, Object> map = insOrderService.getInsOrderAndSample(id, laboratory); + Map<String, Object> map = insOrderService.getInsOrderAndSample(sampleId, laboratory); List<SampleProductDto> list = JSON.parseArray(JSON.toJSONString(map.get("sampleProduct")), SampleProductDto.class); - for (SampleProductDto samples : list) { - if (BeanUtil.isEmpty(samples.getInsProduct())) continue; - samples.setBushing(insBushingService.selectBushingBySampleId(samples.getId())); - } map.put("sampleProduct", list); return map; } @@ -232,16 +196,33 @@ List<InsProduct> insProducts = new ArrayList<>(); switch (type) { case 0: + //鏍峰搧 insProducts = insSampleMapper.getInsProduct1(id, laboratory); + if (insProducts.size() == 0) { + insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId, id) + .eq(InsProduct::getState, 1) + .eq(InsProduct::getSonLaboratory, laboratory)); + for (InsProduct insProduct : insProducts) { + List<InsProductResult2> insProductResult2List = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getInsProductId, insProduct.getId()).isNull(InsProductResult2::getNum)); + insProduct.setInsProductResult2(insProductResult2List); + InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getInsProductId, insProduct.getId()).isNull(InsProductResult::getNum)); + insProduct.setInsProductResult(insProductResult); + } + } break; case 1: - insProducts = insSampleMapper.getInsProduct2(id); + //鍏夌氦甯� break; case 2: - insProducts = insSampleMapper.getInsProduct3(id); + //鍏夌氦 + break; + case 3: + //濂楃 break; } - Set<Integer> set = new HashSet<>(); Map<Integer, String> map2 = new HashMap<>(); if (BeanUtil.isEmpty(insProducts)) return null; @@ -250,12 +231,38 @@ } @Override - public List<String> checkSubmitPlan(Integer orderId, String laboratory) { + public List<InsProduct> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request, Integer num) { + List<InsProduct> insProducts = new ArrayList<>(); + switch (type) { + case 0: + //鏍峰搧 + insProducts = insSampleMapper.get2InsProduct1(id, laboratory, num); + if (insProducts.size() == 0) { + throw new ErrorException("褰撳墠妫�楠屾暟鎹繕娌℃湁淇濆瓨,淇濆瓨涔嬪悗鏈夋暟鎹巻鍙�"); + } + break; + case 1: + //鍏夌氦甯� + break; + case 2: + //鍏夌氦 + break; + case 3: + //濂楃 + break; + } + Set<Integer> set = new HashSet<>(); + Map<Integer, String> map2 = new HashMap<>(); + if (BeanUtil.isEmpty(insProducts)) return null; + getTemplateThing(set, map2, insProducts); + return insProducts; + } + + @Override + public List<String> checkSubmitPlan(Integer sampleId, String laboratory) { List<String> collect = new ArrayList<>(); - 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<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, ids) + .eq(InsProduct::getInsSampleId, sampleId) .eq(InsProduct::getSonLaboratory, laboratory) .eq(InsProduct::getState, 1) .eq(InsProduct::getInsResult, 0)); @@ -271,13 +278,25 @@ public Map<String, Object> getFileList(Page page, InsOrderFile insOrderFile) { Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(InsOrderFile.class)); - IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile)); + Integer insOrderId = insOrderFile.getInsOrderId(); + insOrderFile.setInsOrderId(null); + String sonLaboratory = null; + Integer sampleId = null; + if (ObjectUtils.isNotEmpty(insOrderFile.getSonLaboratory())) { + sonLaboratory = insOrderFile.getSonLaboratory(); + insOrderFile.setSonLaboratory(null); + } + if (ObjectUtils.isNotEmpty(insOrderFile.getInsSampleId())) { + sampleId = insOrderFile.getInsSampleId(); + insOrderFile.setInsSampleId(null); + } + IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory,sampleId); map.put("body", insOrderFileIPage); return map; } @Override - public int uploadFile(Integer orderId, MultipartFile file) { + public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory, Integer sampleId) { String urlString; String pathName; String path; @@ -285,6 +304,9 @@ String contentType = file.getContentType(); InsOrderFile insOrderFile = new InsOrderFile(); insOrderFile.setInsOrderId(orderId); + if (ObjectUtils.isNotEmpty(sampleId)) { + insOrderFile.setInsSampleId(sampleId); + } insOrderFile.setFileName(filename); if (contentType != null && contentType.startsWith("image/")) { // 鏄浘鐗� @@ -300,187 +322,180 @@ if (!realpath.exists()) { realpath.mkdirs(); } - pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); + pathName = UUID.randomUUID() + "_"+file.getOriginalFilename().replace("#", "&"); urlString = realpath + "/" + pathName; file.transferTo(new File(urlString)); insOrderFile.setFileUrl(pathName); - return insOrderFileMapper.insert(insOrderFile); - } catch (Exception e) { - e.printStackTrace(); - System.err.println("闄勪欢涓婁紶閿欒"); - return 0; - } - } - - //鍒囨崲璁板綍妯$増鏌ヨ妫�楠屽唴瀹� - @Override - public Map<String, Object> getReportModel(Integer sampleId) { - Map<String, Object> map = new HashMap<>(); - //鍏堟煡鍑哄绠� - List<InsBushing> insBushings = insBushingMapper.selectList(Wrappers.<InsBushing>lambdaQuery().eq(InsBushing::getInsSampleId, sampleId)); - List<InsFibers> fibers = new ArrayList<>(); - List<InsFiber> fiber = new ArrayList<>(); - for (InsBushing insBushing : insBushings) { - //鍐嶆煡璇㈠嚭鎵�鏈夌殑鍏夌氦甯� - List<InsFibers> insFibers = insFibersMapper.selectList(Wrappers.<InsFibers>lambdaQuery().eq(InsFibers::getInsBushingId, insBushing.getId())); - if (CollectionUtils.isNotEmpty(insFibers)) { - for (InsFibers insFiber : insFibers) { - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFibersId, insFiber.getId())); - List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult).filter(sm -> ObjectUtils.isNotEmpty(sm)).collect(Collectors.toList()); - if (insProducts.size() == collect.size()) { - insFiber.setState(1);//宸叉楠� - } else { - insFiber.setState(0);//鏈楠� - } - } - fibers.addAll(insFibers); - //鏌ュ嚭鍏夌氦甯︿笅鎵�鏈夌殑鍏夌氦 - List<InsFiber> fiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().in(InsFiber::getInsFibersId, insFibers.stream().map(InsFibers::getId).collect(Collectors.toList()))); - for (InsFiber insFiber : fiberList) { - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFiberId, insFiber.getId())); - List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult).filter(sm -> ObjectUtils.isNotEmpty(sm)).collect(Collectors.toList()); - if (insProducts.size() == collect.size()) { - insFiber.setState(1);//宸叉楠� - } else { - insFiber.setState(0);//鏈楠� - } - } - fiber.addAll(fiberList); - } else { - //濡傛灉濂楃涓嬫病鏈夊厜绾ゅ甫灏卞彧鏈夊厜绾や簡 - List<InsFiber> insFiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushing.getId())); - for (InsFiber insFiber : insFiberList) { - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFiberId, insFiber.getId())); - List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult).filter(sm -> ObjectUtils.isNotEmpty(sm)).collect(Collectors.toList()); - if (insProducts.size() == collect.size()) { - insFiber.setState(1);//宸叉楠� - } else { - insFiber.setState(0);//鏈楠� - } - } - fiber.addAll(insFiberList); - } - } - map.put("鍏夌氦甯�", fibers); - map.put("鍏夌氦", fiber); - return map; - } - - //娓╁害寰幆鏌ョ湅鍒楄〃鏁版嵁(鍖呮嫭閫氳繃鏍峰搧id,寰幆娆℃暟,娓╁害,寰幆娆℃暟杩涜绛涢��) - @Override - public Map<String, Object> temCycle(Integer sampleId, String inspectionItem, String inspectionItemSubclass) { - Map<String, Object> map = new HashMap<>(); - //鏍峰搧淇℃伅 - SampleVo sampleVo = insSampleMapper.getDetailById(sampleId); - map.put("sampleVo", sampleVo); - List<ProductVo> productVos = new ArrayList<>(); - //鍏堟煡鍑鸿繖涓牱鍝佷笅鏈夊摢浜涚鑹叉爣,鍏夌氦甯�,鍏夌氦鑹叉爣 - //鍏堟煡鍑哄绠� - List<InsBushing> insBushings = insBushingMapper.selectList(Wrappers.<InsBushing>lambdaQuery().eq(InsBushing::getInsSampleId, sampleId)); - if (insBushings.size() > 0) { - //閫氫俊--娓╁害寰幆 - for (InsBushing insBushing : insBushings) { - //鍐嶆煡璇㈠嚭鎵�鏈夌殑鍏夌氦甯� - List<InsFibers> insFibers = insFibersMapper.selectList(Wrappers.<InsFibers>lambdaQuery().eq(InsFibers::getInsBushingId, insBushing.getId())); - if (CollectionUtils.isNotEmpty(insFibers)) { - for (InsFibers insFiber : insFibers) { - //鏌ュ嚭鍏夌氦甯︿笅鎵�鏈夌殑鍏夌氦 - List<InsFiber> fiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsFibersId, insFiber.getId())); - for (InsFiber fiber : fiberList) { - //鍐嶆牴鎹叧鑱旂殑鍏夌氦閰嶇疆鐨刬d鍜屽惊鐜鏁板拰娓╁害鍜屾牱鍝乮d杩涜鏌ヨ妫�楠岄」鐩� - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, inspectionItem) - .eq(InsProduct::getInspectionItemSubclass, inspectionItemSubclass) - .eq(InsProduct::getInsFiberId, fiber.getId())); - for (InsProduct insProduct : insProducts) { - InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery() - .eq(InsProductResult::getInsProductId, insProduct.getId())); - ProductVo productVo = new ProductVo(); - productVo.setCode(insFiber.getCode()); - productVo.setColor(fiber.getColor()); - productVo.setBushColor(insBushing.getColor()); - if (ObjectUtils.isNotEmpty(insProductResult)) { - insProduct.setInsProductResult(insProductResult); - } - //姹傚悓绛夋潯浠朵笅1娆″惊鐜�20搴﹀父娓╃殑璁$畻鍊� - InsProductResult insProductResult1 = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, "1") - .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") - .eq(InsProduct::getInspectionItemClass, insProduct.getInspectionItemClass()) - .eq(InsProduct::getInsFiberId, fiber.getId())).getId())); - if (ObjectUtils.isNotEmpty(insProductResult1) && !insProductResult1.getComValue().equals("[]")) { - insProduct.setComplue(insProductResult1.getComValue().split(":")[1].split("\"")[1]); - } - productVo.setInsProduct(insProduct); - productVos.add(productVo); - } - } - } + insOrderFileMapper.insert(insOrderFile); + //濡傛灉鏄緪灏勮瘯楠�(杩戝満/杩滅▼涓婁紶鐨刢sv鏂囦欢) + String[] split = filename.split("\\."); + if (ObjectUtils.isNotEmpty(sonLaboratory) && (sonLaboratory.equals("杩戝満") || sonLaboratory.equals("杩滃満")) && + split[split.length - 1].equals("csv")) { + //鍒ゆ柇鏄摢绉峜sv鏂囦欢,鏄惁鏈夆�斺�� + if (!file.getOriginalFilename().contains("鈥斺��")) { + fuSheUtils.getFuSheWord1(sonLaboratory, insOrderFile); } else { - //濡傛灉濂楃涓嬫病鏈夊厜绾ゅ甫灏卞彧鏈夊厜绾や簡 - List<InsFiber> insFiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushing.getId())); - for (InsFiber fiber : insFiberList) { - //鍐嶆牴鎹叧鑱旂殑鍏夌氦閰嶇疆鐨刬d鍜屽惊鐜鏁板拰娓╁害鍜屾牱鍝乮d杩涜鏌ヨ妫�楠岄」鐩� - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, inspectionItem) - .eq(InsProduct::getInspectionItemSubclass, inspectionItemSubclass) - .eq(InsProduct::getInsFiberId, fiber.getId())); - for (InsProduct insProduct : insProducts) { - InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId())); - ProductVo productVo = new ProductVo(); - productVo.setCode("-"); - productVo.setColor(fiber.getColor()); - productVo.setBushColor(fiber.getBushColor()); - insProduct.setInsProductResult(insProductResult); - //姹傚悓绛夋潯浠朵笅1娆″惊鐜�20搴﹀父娓╃殑璁$畻鍊� - InsProductResult insProductResult1 = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, "1") - .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") - .eq(InsProduct::getInspectionItemClass, insProduct.getInspectionItemClass()) - .eq(InsProduct::getInsFiberId, fiber.getId())).getId())); - if (ObjectUtils.isNotEmpty(insProductResult1) && !insProductResult1.getComValue().equals("[]")) { - insProduct.setComplue(insProductResult1.getComValue().split(":")[1].split("\"")[1]); - } - productVo.setInsProduct(insProduct); - productVos.add(productVo); - } - } + fuSheUtils.getFuSheWord2(sonLaboratory, insOrderFile); } } - productVos = productVos.stream().sorted(Comparator.comparing(productVo -> productVo.getInsProduct().getInspectionItemClass())).collect(Collectors.toList()); - } else { - //鐢靛姏--鐑惊鐜拰娓╁崌璇曢獙 - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, inspectionItem)); - for (InsProduct insProduct : insProducts) { - InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId())); - ProductVo productVo = new ProductVo(); - if (ObjectUtils.isNotEmpty(insProductResult)) { - insProduct.setInsProductResult(insProductResult); - } - productVo.setInsProduct(insProduct); - productVos.add(productVo); - } + } catch (Exception e) { + System.err.println("闄勪欢涓婁紶閿欒"); } - map.put("productVos", productVos); - return map; + return 0; } @Override - public List<String> upPlanUser2(Integer orderId) { - List<Integer> sampleId = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList()); - List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, sampleId)).stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList()); + public List<String> upPlanUser2(Integer sampleId) { + List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getState, 1) + .eq(InsProduct::getInsSampleId, sampleId)) + .stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList()); return sonLaboratory; } + @Override + public int deleteInsContext(InsProductResultVo insProductResultVo) { + return insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getFrequency, insProductResultVo.getFrequency()) + .eq(InsProductResult2::getNum, insProductResultVo.getNum()) + .in(InsProductResult2::getInsProductId, insProductResultVo.getProductIds())); + } + + //鎵爜鎶ユ + @Override + public int scanInsOrderState(String sonLaboratory, String sampleCode, String trees) { + /*鏍峰搧鍏ュ簱*/ + warehouseService.inWarehouse(trees, sampleCode); + /*鏂板妫�楠屼换鍔�*/ + //鍏堝垽鏂鏍峰搧鏄惁鏈夎繖涓珯鐐圭殑椤圭洰 + InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode)); + List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getState, 1) + .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList()); + if (!collect.contains(sonLaboratory)) { + throw new ErrorException("璇ユ牱鍝佹病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!"); + } + //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁缁撴潫璇曢獙(鍙浠讳竴浠诲姟缁撴潫璇曢獙閮戒笉鑳藉啀娆¤瘯楠�) + List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsState, 5)); + if (CollectionUtils.isNotEmpty(orderStates)) { + throw new ErrorException("璇ヨ鍗曠珯鐐圭殑浠诲姟宸茬粡缁撴潫璇曢獙,鏃犳硶鍐嶆杩涜璇曢獙!"); + } + InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, insSample.getId()) + .eq(InsOrderState::getLaboratory, sonLaboratory)); + if (ObjectUtils.isNotEmpty(orderState)) { + //缁х画璇曢獙 + if (orderState.getInsState() == 6) { + orderState.setInsState(0); + orderState.setNum(orderState.getNum() + 1);//閫掑 + insOrderStateMapper.updateById(orderState); + } + } else { + InsOrderState insOrderState = new InsOrderState(); + insOrderState.setInsOrderId(insSample.getInsOrderId()); + insOrderState.setInsOrderId(insSample.getId()); + insOrderState.setLaboratory(sonLaboratory); + insOrderState.setInsState(0); + insOrderState.setNum(1);//鍒濆鏄涓�娆� + insOrderStateMapper.insert(insOrderState); + } + return 1; + } + + //鎵爜鍑哄簱 + @Override + public int outInsOrderState(String sonLaboratory, String sampleCode) { + //鍒ゆ柇璇ユ牱鍝佺殑妫�楠屼换鍔℃槸鍚﹀凡缁忕粨鏉�(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙) + //鍏堝垽鏂鏍峰搧鏄惁鏈夎繖涓珯鐐圭殑椤圭洰 + InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode)); + List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getState, 1) + .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList()); + if (!collect.contains(sonLaboratory)) { + throw new ErrorException("璇ユ牱鍝佹病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!"); + } + //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙) + List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsState, 5));//缁撴潫璇曢獙 + if (CollectionUtils.isEmpty(orderStates)) { + List<InsOrderState> orderStates1 = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, insSample.getId()) + .eq(InsOrderState::getLaboratory, sonLaboratory) + .eq(InsOrderState::getInsState, 6));//缁х画璇曢獙 + if (CollectionUtils.isEmpty(orderStates1)) { + throw new ErrorException("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙鎴栫户缁瘯楠�,鏆傛椂鏃犳硶鍑哄簱!"); + } + } + boolean a = true; + warehouseService.outWarehouse(sampleCode, a); + return 0; + } @Override - public void saveInsContext(Map<String, Object> insContext) { + public List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId) { + return insOrderUserMapper.getInsOrderUserList(insOrderStateId); + } + + private static final String splitIdentifier = "@-@"; // 鑷畾涔夊敮涓�鏍囪瘑鍒嗗壊绗� + + //棰勮鏂囦欢 + @Override + public Object preview(Integer id) throws Exception { + InsOrderFile insOrderFile = insOrderFileMapper.selectById(id); + File file = new File(wordUrl + "/" + insOrderFile.getFileUrl()); + StringBuilder stringBuilder = new StringBuilder(); + // 鍒涘缓 reader + try (BufferedReader br = Files.newBufferedReader(file.toPath())) { + // CSV鏂囦欢鐨勫垎闅旂 + String DELIMITER = ","; + // 鎸夎璇诲彇 + String line; + while ((line = br.readLine()) != null) { + // 鍒嗗壊 + String[] columns = line.split(DELIMITER); + // 鎵撳嵃琛� + stringBuilder.append(String.join(splitIdentifier, columns)).append("\n"); + } + } catch (Exception ex) { + List<Object> list = new ArrayList<>(); + //鍒涘缓宸ヤ綔绨垮璞� + XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(file)); + //鑾峰彇宸ヤ綔绨夸笅sheet鐨勪釜鏁� 鍙鍙栫涓�涓猻heet + int sheetNum = xssfWorkbook.getNumberOfSheets(); + //閬嶅巻宸ヤ綔绨夸腑鐨勬墍鏈夋暟鎹� + for (int i = 0; i < sheetNum; i++) { + Map<String, Object> map = new HashMap<>(); + StringBuilder result = new StringBuilder(); + XSSFSheet sheet = xssfWorkbook.getSheetAt(i); + //鑾峰彇鏈�鍚庝竴琛岀殑num锛屽嵆鎬昏鏁般�傛澶勪粠0寮�濮� + int maxRow = sheet.getLastRowNum(); + for (int row = 0; row <= maxRow; row++) { + //鑾峰彇鏈�鍚庡崟鍏冩牸num锛屽嵆鎬诲崟鍏冩牸鏁� ***娉ㄦ剰锛氭澶勪粠1寮�濮嬭鏁�*** + int maxRol = sheet.getRow(row).getLastCellNum(); + StringBuilder aLine = new StringBuilder(); + for (int rol = 0; rol < maxRol; rol++) { + aLine.append(sheet.getRow(row).getCell(rol)).append(","); + } + String substring = aLine.substring(0, aLine.length() - 1); + result.append(substring).append("\n"); + } + map.put("sheetName", sheet.getSheetName()); + map.put("content", result.toString()); + list.add(map); + } + return list; + } + return stringBuilder.toString(); + } + + //妯$増淇濆瓨妫�楠屽唴瀹� + @Override + public void saveInsContext(Map<String, Object> insContext, Integer num) { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); CompletableFuture.supplyAsync(() -> { insContext.forEach((k, v) -> { @@ -488,6 +503,7 @@ InsProduct insProduct = new InsProduct(); insProduct.setId(Integer.parseInt(k)); List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getNum, num) .eq(InsProductResult::getInsProductId, insProduct.getId())); InsProductResult result; if (CollectionUtils.isEmpty(results)) { @@ -496,7 +512,8 @@ result = results.get(0); } result.setInsProductId(Integer.parseInt(k)); - InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, Integer.parseInt(k))); + result.setNum(num); + //妫�楠屽�� if (jo.get("insValue") != null) { JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(jo.get("insValue"))); List<Map<String, Object>> iv = new ArrayList<>(); @@ -519,6 +536,7 @@ } result.setInsValue(JSON.toJSONString(iv)); } + //璁$畻鍊� if (jo.get("comValue") != null && !Objects.equals(jo.get("comValue"), "")) { JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("comValue"))); List<Map<String, Object>> cv = new ArrayList<>(); @@ -530,6 +548,7 @@ } result.setComValue(JSON.toJSONString(cv)); } + //鏈�缁堝�� try { JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("resValue"))); if (resValue.get("v") != null) { @@ -539,6 +558,27 @@ } catch (Exception e) { insProduct.setLastValue("");//'' } + //璇曢獙鍓嶆牱鍝佹鏌� + try { + JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("beforeCheck"))); + if (resValue.get("v") != null) { + Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v"); + result.setBeforeCheck(o.equals("") ? null : (o.toString())); + } + } catch (Exception e) { + result.setBeforeCheck("");//'' + } + //璇曢獙鍚庢牱鍝佹鏌� + try { + JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("afterCheck"))); + if (resValue.get("v") != null) { + Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v"); + result.setAfterCheck(o.equals("") ? null : (o.toString())); + } + } catch (Exception e) { + result.setAfterCheck("");//'' + } + //璁惧缂栧彿 if (jo.get("equipValue") != null) { JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("equipValue"))); List<Map<String, Object>> ev = new ArrayList<>(); @@ -550,6 +590,7 @@ } result.setEquipValue(JSON.toJSONString(ev)); } + //璁惧鍚嶇О if (jo.get("equipName") != null) { JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("equipName"))); List<Map<String, Object>> ev = new ArrayList<>(); @@ -561,6 +602,7 @@ } result.setEquipName(JSON.toJSONString(ev)); } + //缁撹 try { JSONObject insResult = JSON.parseObject(JSON.toJSONString(jo.get("insResult"))); String ir = JSON.parseObject(JSON.toJSONString(insResult.get("v"))).get("v") + ""; @@ -577,140 +619,10 @@ result.setUpdateTime(LocalDateTime.now()); insProductResultMapper.updateById(result); } - - /*濡傛灉鏄涓�娆¢�夋嫨璁惧淇℃伅,涓旇繕鏈夊叾浣欐牱鍝佷篃鏈夊悓涓�涓粡楠岄」鐩�,閭d箞鎵�鏈夋牱鍝佺殑璇ラ」鐩兘鐢ㄨ繖涓澶囦俊鎭�*/ - //鍏堟煡璇㈡槸鍚﹁繕鏈夊叾浣欐牱鍝� - InsProduct product = insProductMapper.selectById(insProduct.getId()); - - Integer insSampleId = product.getInsSampleId(); - List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSampleMapper.selectById(insSampleId).getInsOrderId())); - if (insSamples.size() > 1 && !product.getInspectionItemType().equals("1")) { - //瀛樺湪鍏朵綑鏍峰搧,鏌ヨ鏄惁鏈夊悓涓�绉嶆楠岄」鐩� - for (InsSample sample : insSamples.stream().filter(insSample -> !insSample.getId().equals(insSampleId)).collect(Collectors.toList())) { - InsProduct product1 = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .eq(InsProduct::getInsSampleId, sample.getId()) - .eq(InsProduct::getInspectionItem, product.getInspectionItem()) - .eq(InsProduct::getInspectionItemEn, product.getInspectionItemEn()) - .eq(InsProduct::getInspectionItemSubclass, product.getInspectionItemSubclass()) - .eq(InsProduct::getInspectionItemSubclassEn, product.getInspectionItemSubclassEn()) - .eq(InsProduct::getTemplateId, product.getTemplateId()) - .eq(InsProduct::getStandardMethodListId, product.getStandardMethodListId()) - ); - if (ObjectUtils.isNotEmpty(product1)){ - //濡傛灉瀛樺湪椤圭洰,鏌ヨ鏄惁鏈夎〃 - InsProductResult productResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, product1.getId())); - if (ObjectUtils.isEmpty(productResult)){ - //娌℃湁琛ㄦ柊寤鸿〃 - productResult = new InsProductResult(); - productResult.setInsProductId(product1.getId()); - productResult.setEquipValue(result.getEquipValue()); - productResult.setEquipName(result.getEquipValue()); - productResult.setCreateUser(userId); - productResult.setUpdateUser(userId); - insProductResultMapper.insert(productResult); - }else if(ObjectUtils.isEmpty(productResult.getEquipValue())){ - //鏈夎〃鍒ゆ柇鏄惁鏈夎澶� - productResult.setEquipValue(result.getEquipValue()); - productResult.setEquipName(result.getEquipValue()); - productResult.setUpdateUser(userId); - productResult.setUpdateTime(LocalDateTime.now()); - insProductResultMapper.updateById(productResult); - } - } - } - - } - - insProduct.setUpdateUser(userId); insProductMapper.updateById(insProduct); insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId())); - insProduct = insProductMapper.selectById(insProduct); - - //鏌ヨ妫�楠屽崟淇℃伅 - InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId()); - //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 - //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 - 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); - } - //鍔犵彮 - AuxiliaryOutputWorkingHours count1 = auxiliaryOutputWorkingHoursMapper.selectOne(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck, userId) - .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) - .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) - .eq(AuxiliaryOutputWorkingHours::getOvertimeOrderNo, insOrder.getEntrustCode())); - //闈炲姞鐝� - AuxiliaryOutputWorkingHours count2 = auxiliaryOutputWorkingHoursMapper.selectOne(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck, userId) - .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) - .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) - .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode())); - if (ObjectUtils.isNotEmpty(insProduct.getManHour()) && ObjectUtils.isEmpty(count2) && ObjectUtils.isEmpty(count1)) { - 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 { - //鍔犵彮 - 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);//妫�娴嬩汉 - } - if (ObjectUtils.isEmpty(insProductResult) && !result.getInsValue().equals("[]") || (ObjectUtils.isNotEmpty(insProductResult) && !insProductResult.getInsValue().equals(result.getInsValue()) && !insProductResult.getInsValue().equals("[]"))) { - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); - } - } - } - } - InsSample insSample = insSampleMapper.selectById(insProductMapper.selectById(insProduct.getId()).getInsSampleId()); insSample.setInsState(1); Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() @@ -718,16 +630,18 @@ Long l1 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, insSample.getId()) .and(wrapper -> wrapper - .isNull(InsProduct::getInsResult) + .isNotNull(InsProduct::getInsResult) .or() - .eq(InsProduct::getInsResult, 2) + .ne(InsProduct::getInsResult, 2) )); if (l == l1) { + //濡傛灉鎵�鏈夐」鐩兘鏈夌粨璁�,閭d箞璇ユ牱鍝佺姸鎬佸凡妫� insSample.setInsState(2); } insSampleMapper.updateById(insSample); /*鏍¢獙涓�涓媟esult琛�*/ List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getNum, num) .eq(InsProductResult::getInsProductId, insProduct.getId())); if (insProductResults.size() > 1) { for (int i = 1; i < insProductResults.size(); i++) { @@ -740,26 +654,14 @@ 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) - ) - //.isNull(InsProduct::getInsResult) - .eq(InsProduct::getSonLaboratory, insProduct.getSonLaboratory()) - .eq(InsProduct::getState, 1)); + InsSample insSample = insSampleMapper.selectById(insProduct.getInsSampleId()); + int orderId = insSample.getInsOrderId(); + int count = insProductMapper.selectInsProductCountByOrderId(insSample.getId()); if (count == 0) { insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, orderId) + .eq(InsOrderState::getInsSampleId, insSample.getId()) .eq(InsOrderState::getLaboratory, insProduct.getSonLaboratory()) .set(InsOrderState::getInsState, 2)); } @@ -770,12 +672,216 @@ }); } + //鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹� + @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()); + InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId()) + .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId()) + .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory()) + .orderByDesc(InsOrderState::getId) + .last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰� + //鏌ヨ鏍峰搧淇℃伅 + 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::getNum, orderState.getNum()) + .eq(InsProductResult2::getFrequency, insProductResultDtos.getFrequency())); + for (InsProductResult2 insProductResult2 : insProductResultDtos.getInsProductResult2s()) { + InsProduct insProduct = new InsProduct(); + insProduct.setId(insProductResult2.getInsProductId());//椤圭洰id + InsProductResult2 result2 = new InsProductResult2(); + result2.setNum(orderState.getNum()); + 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 (insProduct.getAsk().equals("/")) { + ressult = 3; //涓嶅垽瀹� + } else 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())); + /*鏇存柊鏍峰搧鐨勬楠岀姸鎬�*/ + 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::getInsSampleId, insProductResultDtos.getSampleId()) + .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory()) + .set(InsOrderState::getInsState, 2)); + } + return list; + } + + //娓╂箍搴﹁瘯楠�+鍔熺巼璇曢獙鐨勪繚瀛樻楠屽唴瀹� + @Override + public int saveInsContext3(InsProductResult insProductResult) { + //鍏堝垹鍚庡姞 + insProductResultMapper.delete(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getInsProductId, insProductResult.getInsProductId()) + .eq(InsProductResult::getNum, insProductResult.getNum())); + insProductResult.setEquipValue("[{\"v\":\"" + insProductResult.getEquipValue() + "\"}]"); + insProductResult.setEquipName("[{\"v\":\"" + insProductResult.getEquipName() + "\"}]"); + insProductResultMapper.insert(insProductResult); + return 0; + } + + //瑙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; + } + //浜ゆ帴 @Override - public int upPlanUser(Integer userId, Integer orderId, String sonLaboratory) { + public int upPlanUser(Integer userId, Integer sampleId, String sonLaboratory) { InsSampleUser insSampleUser = new InsSampleUser(); insSampleUser.setUserId(userId); - insSampleUser.setInsSampleId(orderId); + insSampleUser.setInsSampleId(sampleId); insSampleUser.setState(0); insSampleUser.setSonLaboratory(sonLaboratory); return insSampleUserMapper.insert(insSampleUser); @@ -783,2786 +889,105 @@ @Override @Transactional(rollbackFor = Exception.class) - public int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) { - Integer num = (type == 1 ? 5 : 4); + public int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException { LocalDateTime now = LocalDateTime.now(); - insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, orderId).eq(InsOrderState::getLaboratory, laboratory).set(InsOrderState::getInsTime, now).set(InsOrderState::getInsState, num).set(InsOrderState::getVerifyTell, tell).set(InsOrderState::getVerifyUser, getLook.selectPowerByMethodAndUserId(null).get("userId"))); - Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, orderId).ne(InsOrderState::getInsState, 5)); - if (count == 0 && num == 5) { - List<InsUnPass> insUnPasses = new ArrayList<>(); - /*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/ - //杩欓噷鐨刬nsSamples鏄鍗曚笅鐨勬墍鏈夋牱鍝佸寘鎷�("/") - List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)); - for (InsSample insSample : insSamples) { - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId()).eq(InsProduct::getState, 1)); - List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList()); - if (results.contains(0)) { - insSample.setInsResult(0); - } else { - 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); - Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId()); - //samples鏄笉鍖呮嫭甯︽湁"/"鐨勬牱鍝� - List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId); - InsReport insReport = new InsReport(); - insReport.setCode(insOrder.getEntrustCode()); - insReport.setInsOrderId(orderId); - List<Map<String, Object>> tables = new ArrayList<>(); - Set<String> standardMethod = new HashSet<>(); - Set<String> deviceSet = new HashSet<>(); - Set<String> models = new HashSet<>(); - AtomicReference<Integer> productSize = new AtomicReference<>(0); - String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; - AtomicReference<String> resultCh = new AtomicReference<>(""); - AtomicReference<String> resultEn = new AtomicReference<>(""); - /*鍩虹鎶ュ憡(鏍规嵁缁樺埗鐨勫師濮嬭褰曟ā鐗堝舰鎴�)*/ - samples.forEach(a -> { - Set<Integer> set = new HashSet<>(); - Map<Integer, String> map2 = new HashMap<>(); - Long productCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, a.getId())); - productSize.set(productSize.get() + Integer.parseInt(productCount + "")); - models.add(a.getModel()); - standardMethod.add(baseMapper.getStandardMethodCode(a.getStandardMethodListId())); - Set<String> templateSet = new HashSet<>(); - getTemplateThing(set, map2, a.getInsProduct()); - for (InsProduct b : a.getInsProduct()) { - if (b.getInsProductResult() != null) { - List<JSONObject> jsonObjects = JSON.parseArray(b.getInsProductResult().getEquipValue(), JSONObject.class); - for (JSONObject jsonObject : jsonObjects) { - if (!"".equals(jsonObject.get("v") + "")) { - deviceSet.add(jsonObject.get("v") + ""); - } - } - } - if (b.getTemplate() == null) { - continue; - } - if (b.getTemplate().size() == 0) { - continue; - } - templateSet.add(JSON.toJSONString(b.getTemplate())); - } - AtomicInteger index = new AtomicInteger(); - Set<String> itemSet = new HashSet<>(); - templateSet.forEach(tem -> { - Set<Integer> set2 = new HashSet<>(); - List<RowRenderData> rows = new ArrayList<>(); - List<TextRenderData> text = new ArrayList<>(); - RowRenderData rowRenderData; - Set<String> delSet = new HashSet<>(); - List<ExcelDto> excelDtos = JSON.parseArray(tem, ExcelDto.class); - List<ExcelDto> mcList = new ArrayList<>(); - excelDtos.forEach(b -> { - if (b.getV().getMc() != null && b.getV().getMc().getCs() != null && b.getV().getMc().getRs() != null) { - mcList.add(b); - } - }); - int count5 = 0; - for (ExcelDto b : mcList) { - for (ExcelDto excelDto : excelDtos) { - for (int i = 0; i < b.getV().getMc().getCs(); i++) { - for (int i2 = 0; i2 < b.getV().getMc().getRs(); i2++) { - if (excelDto.getC() == b.getC() + i && excelDto.getR() == b.getR() + i2) { - ExcelDto bb = JSON.parseObject(JSON.toJSONString(b), ExcelDto.class); - excelDto.getV().setV(bb.getV().getV()); - excelDto.getV().setPs(bb.getV().getPs()); - excelDto.getV().setFc(bb.getV().getFc()); - excelDto.getV().setFs(bb.getV().getFs()); - excelDto.getV().setHt(bb.getV().getHt()); - excelDto.setMc(count5); - break; - } - } - } - } - count5++; - } - List<JSONObject> temp = JSON.parseArray(JSON.toJSONString(excelDtos), JSONObject.class); - Map<String, InsProduct> pMap = new HashMap<>(); - Set<String> delRSet = new HashSet<>(); - delRSet.add("0"); - for (JSONObject jo1 : temp) { - JSONObject v = JSON.parseObject(JSON.toJSONString(jo1.get("v"))); - if (Integer.parseInt(jo1.get("c") + "") > 9) { - delSet.add(jo1.get("c") + ""); - continue; - } - if (v.get("ps") != null) { - int count3 = 0; - String str = ""; - String s = JSON.parseObject(JSON.toJSONString(v.get("ps"))).get("value") + ""; - if (s.contains("妫�楠屽��") || s.contains("璁惧鍚嶇О") || s.contains("璁惧缂栫爜") || s.contains("璇曢獙鏂规硶") || s.contains("妫�娴嬫柟娉�")) { - delSet.add(jo1.get("c") + ""); - continue; - } - for (JSONObject jo2 : temp) { - JSONObject v2 = JSON.parseObject(JSON.toJSONString(jo2.get("v"))); - if (jo1.get("r").equals(jo2.get("r"))) { - if (v2.get("ps") != null && JSON.parseObject(JSON.toJSONString(v2.get("ps"))).get("value").toString().contains("妫�楠岄」")) { - if (count3 == 0) { - str += v2.get("v"); - count3 += 1; - } - } else if (v2.get("ps") != null && JSON.parseObject(JSON.toJSONString(v2.get("ps"))).get("value").toString().contains("妫�楠屽瓙椤�")) { - if (count3 == 1) { - str += v2.get("v"); - count3 += 1; - } - } - } - } - if (!str.equals("")) { - int count2 = 0; - for (InsProduct product : a.getInsProduct()) { - if ((product.getInspectionItem() + product.getInspectionItemSubclass()).equals(str)) { - pMap.put(jo1.get("r") + "", product); - break; - } else { - count2++; - } - } - if (count2 == a.getInsProduct().size()) { - delRSet.add(jo1.get("r") + ""); - } - } - } - } - for (int i = 0; i < temp.size(); i++) { - JSONObject jo1 = temp.get(i); - TextRenderData textRenderData = new TextRenderData(); - if (set2.add(Integer.parseInt(jo1.get("r") + ""))) { - if (text.size() > 0) { - TextRenderData[] text2 = text.toArray(new TextRenderData[0]); - rowRenderData = Rows.of(text2).center().rowAtleastHeight(1).create(); - rows.add(rowRenderData); - text = new ArrayList<>(); - } - } - if (delRSet.stream().anyMatch(e -> e.equals(jo1.get("r") + ""))) { - continue; - } - if (delSet.stream().anyMatch(e -> e.equals(jo1.get("c") + ""))) { - continue; - } - JSONObject v = JSON.parseObject(JSON.toJSONString(jo1.get("v"))); - InsProduct p = pMap.get(jo1.get("r") + ""); - if (p != null && v.get("ps") != null) { - String value = JSON.parseObject(JSON.toJSONString(v.get("ps"))).get("value") + ""; - if (value.contains("瑕佹眰鍊�")) { - textRenderData.setText(ObjectUtils.isNotEmpty(p.getTell()) ? p.getTell() : ""); - } else if (value.contains("鍗曚綅")) { - textRenderData.setText(p.getUnit()); - } else if (value.contains("缁撹")) { - switch (p.getInsResult()) { - case 1: - textRenderData.setText("鈭�"); - break; - case 0: - String current = resultCh.get(); - // 浣跨敤 Set 鏉ヤ繚鎸佸敮涓�椤� - Set<String> uniqueItems = new HashSet<>(); - if (!current.isEmpty()) { - // 鍒嗗壊褰撳墠瀛楃涓插苟鍔犲叆鍒� Set 涓� - String[] items = current.split("銆�"); - for (String item : items) { - if (!item.isEmpty()) { - uniqueItems.add(item); - } - } - } - // 澶勭悊鏂版暟鎹� - String newItem = p.getInspectionItem() + - (Objects.equals(p.getInspectionItemSubclass(), "") ? "" : " " + p.getInspectionItemSubclass()); - uniqueItems.add(newItem); - - // 杩炴帴鍞竴椤瑰苟鏇存柊 AtomicReference - String result = String.join("銆�", uniqueItems); - resultCh.set(result); - //resultCh.set(resultCh.get() + "銆�" + p.getInspectionItem() + (Objects.equals(p.getInspectionItemSubclass(), "") ? "" : " " + p.getInspectionItemSubclass())); - - String current1 = resultEn.get(); - // 浣跨敤 Set 鏉ヤ繚鎸佸敮涓�椤� - Set<String> uniqueItems1 = new HashSet<>(); - if (!current1.isEmpty()) { - // 鍒嗗壊褰撳墠瀛楃涓插苟鍔犲叆鍒� Set 涓� - String[] items = current1.split("銆�"); - for (String item : items) { - if (!item.isEmpty()) { - uniqueItems1.add(item); - } - } - } - // 澶勭悊鏂版暟鎹� - String newItem1 = p.getInspectionItemEn() + - ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn()); - uniqueItems1.add(newItem1); - // 杩炴帴鍞竴椤瑰苟鏇存柊 AtomicReference - String result1 = String.join("銆�", uniqueItems1); - resultEn.set(result1); - //resultEn.set(resultEn.get() + "銆�" + p.getInspectionItemEn() + ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn())); - textRenderData.setText("脳"); - break; - default: - textRenderData.setText("-"); - break; - } - } else if (value.contains("搴忓彿")) { - if (itemSet.add(p.getInspectionItem())) { - index.getAndIncrement(); - } - textRenderData.setText(index + ""); - } else if (value.contains("璁$畻鍊�")) { - JSONArray jsonArray = JSON.parseArray(p.getInsProductResult().getComValue()); - textRenderData.setText((JSON.parseObject(JSON.toJSONString(jsonArray.get(0))).get("v") + "").equals("") ? "/" : JSON.parseObject(JSON.toJSONString(jsonArray.get(0))).get("v") + ""); - } else if (value.contains("鏈�缁堝��")) { - textRenderData.setText(p.getLastValue()); - } else if (value.contains("鏍峰搧缂栧彿")) { - textRenderData.setText(a.getSampleCode()); - } else if (value.contains("鏍峰搧鍨嬪彿")) { - textRenderData.setText(a.getModel()); - } else if (value.contains("鏍峰搧鍚嶇О")) { - textRenderData.setText(a.getSample()); - } else if (value.contains("璇曢獙鏂规硶")) { - textRenderData.setText(p.getMethodS()); - } else if (value.contains("妫�楠岄」")) { - if (ObjectUtils.isEmpty(p.getInspectionItemEn())) { - textRenderData.setText(p.getInspectionItem()); - } else { - textRenderData.setText(p.getInspectionItem() + "@" + p.getInspectionItemEn()); - } - } else if (value.contains("妫�楠屽瓙椤�")) { - if (ObjectUtils.isEmpty(p.getInspectionItemSubclassEn())) { - textRenderData.setText(p.getInspectionItemSubclass()); - } else { - textRenderData.setText(p.getInspectionItemSubclass() + "@" + p.getInspectionItemSubclassEn()); - } - } else { - textRenderData.setText(v.get("v") == null ? "" : v.get("v") + ""); - } - } else if (p == null && v.get("ps") != null) { - String value = JSON.parseObject(JSON.toJSONString(v.get("ps"))).get("value") + ""; - p = pMap.get(pMap.keySet().iterator().next()); - if (value.contains("鏈�缁堝��")) { - textRenderData.setText(p.getLastValue()); - } else if (value.contains("缁撹")) { - switch (p.getInsResult()) { - case 1: - textRenderData.setText("鉁�"); - break; - case 0: - resultCh.set(resultCh.get() + "銆�" + p.getInspectionItem() + (p.getInspectionItemSubclass().equals("") ? "" : " " + p.getInspectionItemSubclass())); - resultEn.set(resultEn.get() + "銆�" + p.getInspectionItemEn() + ((Objects.equals(p.getInspectionItemSubclassEn(), "") || Objects.equals(p.getInspectionItemSubclassEn(), null)) ? "" : " " + p.getInspectionItemSubclassEn())); - textRenderData.setText("鉁�"); - break; - default: - textRenderData.setText("-"); - break; - } - } else if (value.contains("鏍峰搧缂栧彿")) { - textRenderData.setText(a.getSampleCode()); - } else if (value.contains("鏍峰搧鍨嬪彿")) { - textRenderData.setText(a.getModel()); - } else if (value.contains("鏍峰搧鍚嶇О")) { - textRenderData.setText(a.getSample()); - } else { - textRenderData.setText(v.get("v") == null ? "" : v.get("v") + ""); - } - } else { - textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "鈭�" + jo1.get("mc")); - } - if (jo1.get("mc") != null) { - textRenderData.setText(textRenderData.getText() + "鈭�" + jo1.get("mc")); - } - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - if (!((v.get("fc") + "").indexOf("rgb") > -1)) { - style.setColor(v.get("fc") == null ? "000000" : (v.get("fc") + "").replace("#", "")); - } else { - style.setColor("000000"); - } - textRenderData.setStyle(style); - text.add(textRenderData); - } - TextRenderData[] text2 = text.toArray(new TextRenderData[0]); - rowRenderData = Rows.of(text2).rowAtleastHeight(1).center().create(); - if (rowRenderData.getCells().size() != 0) { - rows.add(rowRenderData); - } - List<TableRenderData> tables1 = new ArrayList<>(); - TableRenderData tableRenderData = new TableRenderData(); - tableRenderData.setRows(new ArrayList<>()); - double totalHeight = 0.0; // 鐢ㄤ簬璺熻釜褰撳墠琛ㄦ牸鐨勬�昏楂� - double heightThreshold = 8000.0; // 闃堝�硷紝 - List<RowRenderData> firstTwoRows = new ArrayList<>(); // 淇濆瓨鍓嶄袱琛屼互渚垮鍒跺埌鏂拌〃鏍� - // 淇濆瓨鍓嶄袱琛屼互渚垮鍒跺埌鏂拌〃鏍� - if (rows.size() >= 2) { - firstTwoRows.add(rows.get(0)); - firstTwoRows.add(rows.get(1)); - } - for (RowRenderData row : rows) { - double rowHeight = row.getRowStyle().getHeight(); // 鑾峰彇褰撳墠琛岀殑琛岄珮 - totalHeight += rowHeight; // 鏇存柊鎬昏楂� - if (totalHeight >= heightThreshold) { - // 鍒涘缓鏂拌〃鏍煎苟澶嶅埗鍓嶄袱琛� - TableRenderData newTableRenderData = new TableRenderData(); - newTableRenderData.setRows(new ArrayList<>(firstTwoRows)); - //璁剧疆鏍峰紡 - TableStyle tableStyle = new TableStyle(); - tableStyle.setColWidths(new int[]{650, 1600, 2000, 750, 2800, 1100, 1100}); - tableStyle.setWidth("10000"); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - newTableRenderData.setTableStyle(tableStyle); - tables1.add(tableRenderData); - tableRenderData = newTableRenderData; - totalHeight = rowHeight; - } - tableRenderData.getRows().add(row); - } - if (!tableRenderData.getRows().isEmpty()) { - //璁剧疆鏍峰紡 - TableStyle tableStyle = new TableStyle(); - tableStyle.setColWidths(new int[]{650, 1600, 2000, 750, 2800, 1100, 1100}); - tableStyle.setWidth("10000"); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - tables1.add(tableRenderData); - } - tables1.forEach(table -> { - Map<String, Object> tableMap = new HashMap<>(); - tableMap.put("table", table); - tableMap.put("report", insReport); - tables.add(tableMap); - }); - }); - }); - /*鍏夌氦鎺ュご鎹熻�楃殑鎶ュ憡鏍峰紡*/ - //鏌ヨ璁㈠崟涓嬫墍鏈夋牱鍝佺殑妫�楠岄」鐩�,濡傛灉鏈夊厜绾ゆ帴澶存崯鑰楀垯閲嶆柊鏋勫缓琛ㄦ牸 - List<Map<String, Object>> tables4 = new ArrayList<>(); - List<InsProduct> insProducts0 = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).distinct().collect(Collectors.toList()))); - if (insProducts0.stream().map(InsProduct::getInspectionItem).collect(Collectors.toList()).contains("鍏夌氦鎺ュご鎹熻��")) { - //娓呯┖鍘熸湁鐨勫熀纭�琛ㄦ牸 - tables.clear(); - //鍘婚噸鐨勬楠岄」鐩� - List<String> filteredProducts = insProducts0.stream().map(insProduct -> { - return (insProduct.getInspectionItem() + "," + insProduct.getInspectionItemEn() + "," + insProduct.getInspectionItemSubclass() + "," + insProduct.getInspectionItemSubclassEn() + "," + insProduct.getTell()); - }).distinct().collect(Collectors.toList()); - //妫�楠岄」鐩殑鎬绘暟閲�(鍘婚噸) - long size = filteredProducts.size(); - long number = 10; - long number2 = 7; - long index = 1; - //妫�楠岀粨鏋滄姤鍛�(褰撴楠岄」鐩秴杩�10涓柊寤鸿〃) - for (long i = 0; i < size; i++) { - if (i % number == 0) { - List<RowRenderData> rows = new ArrayList<>(); - //琛ㄦ牸鐨勮鏁� 脳 鈭� 鉁� 鉁� - long count1 = size - (index - 1) * number < number ? size - (index - 1) * number + 3 : number + 3; - for (int j = 0; j < count1; j++) { - RowRenderData rowRenderData = new RowRenderData(); - RowStyle rowStyle = new RowStyle(); - rowStyle.setHeight(40); - rowRenderData.setRowStyle(rowStyle); - List<CellRenderData> cells = new ArrayList<>(); - //琛ㄦ牸鐨勫垪鏁� - for (int k = 0; k < 6; k++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (j == 0) { - //绗竴琛� - if (k < 4) { - //鍓�4鍒� - textRenderData.setText("瑙勬牸鍨嬪彿@Type鈭�11"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鍚�2鍒� - textRenderData.setText(insSamples.get(0).getModel() + "鈭�12"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == 1) { - //绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("搴忓彿@No.鈭�13"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 1) { - //绗簩鍒� - textRenderData.setText("妫�楠岄」鐩瓳Test Item鈭�14"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 2 || k == 3) { - //绗笁鍥涘垪 - textRenderData.setText("鏍囧噯瑕佹眰@Requirement鈭�15"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 4) { - //绗簲鍒� - textRenderData.setText("妫�楠岀粨鏋淍Test result鈭�16"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //绗叚鍒� - textRenderData.setText("缁撹@Conclusion鈭�17"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == count1 - 1) { - //鏈�鍚庝竴琛� - if (k == 0 || k == 1) { - //鍓嶄袱鍒� - textRenderData.setText("澶囨敞鈭�18"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("鈥溾垰鈥濊〃绀洪」鐩悎鏍硷紝鈥溍椻�濊〃绀洪」鐩笉鍚堟牸@鈥溾垰鈥漣ndicates test Item is qualified锛屸�溍椻�漣ndicates test Item is unqualified鈭�19"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else { - if (k == 0) { - //绗竴鍒� - textRenderData.setText((j - 1) + ""); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 1) { - //绗簩鍒� - String insProduct; - try { - insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1))); - } catch (Exception e) { - continue; - } - String[] split = insProduct.split(","); - if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")) { - textRenderData.setText(split[0]); - } else { - textRenderData.setText(split[0] + "@" + split[1]); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 2) { - //绗笁鍒� - //鍏堝垽鏂楠岄」鏄惁鏈夊瓙绫� - String insProduct; - try { - insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1))); - } catch (Exception e) { - continue; - } - String[] split = insProduct.split(","); - if (ObjectUtils.isEmpty(split[2]) || split[2].equals("")) { - //濡傛灉娌℃湁瀛愮被 - textRenderData.setText(split[4] + "鈭�2" + j);//瑕佹眰鎻忚堪 - } else { - //濡傛灉鏈夊瓙绫� - //杩樿鍒ゆ柇鏄惁鏈夎嫳鏂� - if (ObjectUtils.isEmpty(split[3]) || split[3].equals("")) { - textRenderData.setText(split[2]);//妫�楠屽瓙椤� - } else { - textRenderData.setText(split[2] + "@" + split[3]);//妫�楠屽瓙椤�+鑻辨枃 - } - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 3) { - //绗洓鍒� - //鍏堝垽鏂楠岄」鏄惁鏈夊瓙绫� - String insProduct; - try { - insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1))); - } catch (Exception e) { - continue; - } - String[] split = insProduct.split(","); - if (ObjectUtils.isEmpty(split[2]) || split[2].equals("")) { - //濡傛灉娌℃湁瀛愮被 - textRenderData.setText(split[4] + "鈭�2" + j);//瑕佹眰鎻忚堪 - } else { - //濡傛灉鏈夊瓙绫� - textRenderData.setText(split[4]);//瑕佹眰鎻忚堪 - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 4) { - //绗簲鍒� - String insProduct; - try { - insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1))); - } catch (Exception e) { - continue; - } - String[] split = insProduct.split(","); - //鏌ヨ鎵�鏈夋牱鍝佽妫�楠岄」鐨勬楠岀粨鏋�(鏈�缁堝��) - List<InsProduct> products = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .eq(InsProduct::getInspectionItem, split[0]) - .eq(InsProduct::getInspectionItemSubclass, split[2]) - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).distinct().collect(Collectors.toList()))); - //鑾峰彇鏈�灏忓�煎拰鏈�澶у�� - Optional<String> max = products.stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - Optional<String> min = products.stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .min(String::compareTo); - textRenderData.setText(min.get() + "-" + max.get());//妫�楠岀粨鏋� - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鏈�鍚庝竴鍒� - String insProduct; - try { - insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1))); - } catch (Exception e) { - continue; - } - String[] split = insProduct.split(","); - //鏌ヨ鎵�鏈夋牱鍝佽妫�楠岄」鐨勬楠岀粨璁�(ins_result) - List<InsProduct> products = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .eq(InsProduct::getInspectionItem, split[0]) - .eq(InsProduct::getInspectionItemSubclass, split[2]) - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).distinct().collect(Collectors.toList()))); - List<Integer> result = products.stream().map(InsProduct::getInsResult).distinct().collect(Collectors.toList()); - if (result.size() == 1 && result.contains(1)) { - //鍚堟牸 - textRenderData.setText("鈭�"); - } else { - //涓嶅悎鏍� - textRenderData.setText("脳"); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - rowRenderData.setCells(cells); - if (rowRenderData.getCells().size() != 0) { - rows.add(rowRenderData); - } - } - TableRenderData tableRenderData = new TableRenderData(); - tableRenderData.setRows(rows); - int countSize = tableRenderData.getRows().get(0).getCells().size(); - for (RowRenderData row : tableRenderData.getRows()) { - /* for (CellRenderData cell : row.getCells()) { - System.out.print(cell.getParagraphs().get(0).getContents()); - } - System.out.println("");*/ - if (row.getCells().size() != countSize) { - throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑1"); - } - } - TableStyle tableStyle = new TableStyle(); - tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - Map<String, Object> table = new HashMap<>(); - table.put("table", tableRenderData); - table.put("report", insReport); - table.put("index", index); - tables.add(table); - index++; - } - } - long index4 = 1; - //妫�楠屾姤鍛婃姤鍛�(褰撴楠岄」鐩秴杩�7涓柊寤鸿〃) - for (long j = 0; j < size; j++) { - if (j % number2 == 0) { - List<RowRenderData> rows = new ArrayList<>(); - //琛ㄦ牸鐨勮鏁�(鏍规嵁鏍峰搧鏁伴噺鏉�) - for (int i = 0; i < samples.size() + 2; i++) { - RowRenderData rowRenderData = new RowRenderData(); - RowStyle rowStyle = new RowStyle(); - rowStyle.setHeight(40); - rowRenderData.setRowStyle(rowStyle); - List<CellRenderData> cells = new ArrayList<>(); - //琛ㄦ牸鐨勫垪鏁� - for (int k = 0; k < 8; k++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (i == 0) { - //绗竴琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鏍峰搧缂栧彿@Sample number鈭�30"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //绗簩鍒� - String product; - try { - product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7)); - } catch (Exception e) { - continue; - } - String[] split = product.split(","); - if (ObjectUtils.isEmpty(split[2]) || split[2].equals("")) { - if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")) { - textRenderData.setText(split[0] + "鈭�3" + k); - } else { - textRenderData.setText(split[0] + "@" + split[1] + "鈭�3" + k); - } - } else { - if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")) { - textRenderData.setText(split[0]); - } else { - textRenderData.setText(split[0] + "@" + split[1]); - } - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (i == 1) { - //绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鏍峰搧缂栧彿@Sample number鈭�30"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //绗簩鍒� - String product; - try { - product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7)); - } catch (Exception e) { - continue; - } - String[] split = product.split(","); - if (ObjectUtils.isEmpty(split[2]) || split[2].equals("")) { - if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")) { - textRenderData.setText(split[0] + "鈭�3" + k); - } else { - textRenderData.setText(split[0] + "@" + split[1] + "鈭�3" + k); - } - } else { - if (ObjectUtils.isEmpty(split[3]) || split[3].equals("")) { - textRenderData.setText(split[2]); - } else { - textRenderData.setText(split[2] + "@" + split[3]); - } - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else { - if (k == 0) { - //绗竴鍒� - textRenderData.setText(samples.get(i - 2).getSampleCode()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鏍规嵁鏍峰搧缂栧彿鍜岄」鐩幓鏌ヨ鏈�缁堝�� - String product; - try { - product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7)); - } catch (Exception e) { - continue; - } - String[] split = product.split(","); - InsProduct insProduct = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .eq(InsProduct::getInsSampleId, samples.get(i - 2).getId()) - .eq(InsProduct::getInspectionItem, split[0]) - .eq(InsProduct::getInspectionItemSubclass, split[2])); - if (ObjectUtils.isEmpty(insProduct)) { - //鍙兘鏍规嵁姝e父鐨勬牱鍝佺紪鍙峰拰鍏夌氦鎺ュご鎹熻�楃殑椤圭洰鏌ヤ笉鍒板搴旂殑椤圭洰,鍒欓渶瑕佹牴鎹�"/"鏉ユ煡 - List<InsSample> sampleList = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().like(InsSample::getSampleCode, samples.get(i - 2).getSampleCode())); - List<InsProduct> products = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .in(InsProduct::getInsSampleId, sampleList.stream().map(InsSample::getId).collect(Collectors.toList())) - .eq(InsProduct::getInspectionItem, split[0]) - .eq(InsProduct::getInspectionItemSubclass, split[2])); - insProduct = products.get(0); - } - textRenderData.setText(insProduct.getLastValue()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - - } - rowRenderData.setCells(cells); - if (rowRenderData.getCells().size() != 0) { - rows.add(rowRenderData); - } - } - TableRenderData tableRenderData = new TableRenderData(); - tableRenderData.setRows(rows); - int countSize = tableRenderData.getRows().get(0).getCells().size(); - for (RowRenderData row : tableRenderData.getRows()) { - /*for (CellRenderData cell : row.getCells()) { - System.out.print(cell.getParagraphs().get(0).getContents()); - } - System.out.println("");*/ - if (row.getCells().size() != countSize) { - throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑2"); - } - } - TableStyle tableStyle = new TableStyle(); - tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - Map<String, Object> table = new HashMap<>(); - table.put("table4", tableRenderData); - table.put("report", insReport); - table.put("index4", index4); - tables4.add(table); - index4++; - } - } - //鍏夌氦鎺ュご鎹熻�楃殑鎶ュ憡杩樻槸tables4 - //鏌ヨ鏍峰搧(鍙煡璇㈠甫"/")鐨勬暟閲� - List<InsSample> sampleList = insSamples.stream().filter(insSample -> insSample.getSampleCode().contains("/")).collect(Collectors.toList()); - //杩囨护鍑哄厜绾ゆ帴澶存崯鑰楃殑妫�楠岄」鐩� - List<String> strings = filteredProducts.stream().filter(s -> s.contains("鍏夌氦鎺ュご鎹熻��")).distinct().collect(Collectors.toList()); - long index41 = 1; - for (int i = 0; i < sampleList.size(); i++) { - if (i % 16 == 0) { - //鏍峰搧鏁伴噺瓒呰繃16闇�瑕佹柊澧炶〃鏍� - List<RowRenderData> rows = new ArrayList<>(); - int count2 = sampleList.size() - (index41 - 1) * 16 < 16 ? (int) (sampleList.size() - (index41 - 1) * 16 + 1) : 17; - //琛ㄦ牸鐨勮鏁� - for (int j = 0; j < count2; j++) { - RowRenderData rowRenderData = new RowRenderData(); - RowStyle rowStyle = new RowStyle(); - rowStyle.setHeight(40); - rowRenderData.setRowStyle(rowStyle); - List<CellRenderData> cells = new ArrayList<>(); - //琛ㄦ牸鐨勫垪鏁� - for (int k = 0; k < 6; k++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (j == 0) { - //绗竴琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦绫诲瀷@Fiber type"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 1 || k == 2) { - //绗簩 涓夊垪 - textRenderData.setText("鏍峰搧缂栧彿@Sample number"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - String[] split = strings.get(k - 3).split(","); - if (ObjectUtils.isEmpty(split[3]) || split[3].equals("")) { - textRenderData.setText(split[2]); - } else { - textRenderData.setText(split[2] + "@" + split[3]); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else { - if (k == 0) { - //绗竴鍒� - textRenderData.setText(sampleList.get(0).getModel() + "鈭�44"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 1) { - //绗簩鍒� - textRenderData.setText(sampleList.get(j - 1).getSampleCode().split("/")[0]); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k == 2) { - //绗笁鍒� - textRenderData.setText(sampleList.get(j - 1).getSampleCode().split("/")[1]); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鏍规嵁瀵瑰簲鐨勬牱鍝佺紪鍙峰拰妫�楠岄」鐩煡璇㈠搴旀暟鎹�(鏈�缁堝��) - String[] split = strings.get(k - 3).split(","); - InsProduct insProduct = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .eq(InsProduct::getInsSampleId, sampleList.get(j - 1).getId()) - .eq(InsProduct::getInspectionItem, split[0]) - .eq(InsProduct::getInspectionItemSubclass, split[2])); - textRenderData.setText(insProduct.getLastValue()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - rowRenderData.setCells(cells); - if (rowRenderData.getCells().size() != 0) { - rows.add(rowRenderData); - } - } - TableRenderData tableRenderData = new TableRenderData(); - tableRenderData.setRows(rows); - int countSize = tableRenderData.getRows().get(0).getCells().size(); - for (RowRenderData row : tableRenderData.getRows()) { - /*for (CellRenderData cell : row.getCells()) { - System.out.print(cell.getParagraphs().get(0).getContents()); - } - System.out.println("");*/ - if (row.getCells().size() != countSize) { - throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑3"); - } - } - TableStyle tableStyle = new TableStyle(); - tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - Map<String, Object> table = new HashMap<>(); - table.put("table4", tableRenderData); - table.put("report", insReport); - table.put("index4", index4 + 1); - tables4.add(table); - index4++; - index41++; - } - } - tables4.forEach(table4 -> { - table4.put("tableSize4", tables4.size()); - }); - - } - String url; - try { - InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx"); - File file = File.createTempFile("temp", ".tmp"); - OutputStream outputStream = new FileOutputStream(file); - IOUtils.copy(inputStream, outputStream); - url = file.getAbsolutePath(); - } catch (FileNotFoundException e) { - throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�"); - } catch (IOException e) { - throw new RuntimeException(e); - } - StringBuilder standardMethod2 = new StringBuilder(); - for (String s : standardMethod) { - standardMethod2.append("銆�").append(s); - } - standardMethod2.replace(0, 1, ""); - tables.forEach(table -> { - table.put("tableSize", tables.size() + 1); - }); - List<Map<String, String>> deviceList = null; - if (deviceSet.size() != 0) { - deviceList = insOrderMapper.selectDeviceList(deviceSet); - } - Map<String, String> codeStr = new HashMap<>(); - codeStr.put("鎶ュ憡缂栧彿", insReport.getCode()); - codeStr.put("鏍峰搧鍚嶇О", insOrder.getSample()); - codeStr.put("瑙勬牸鍨嬪彿", samples.get(0).getModel()); - codeStr.put("鍙戞斁鏃ユ湡", now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); - String codePath; - try { - codePath = new MatrixToImageWriter().code(JackSonUtil.marshal(codeStr).replaceAll("\\{", "") - .replaceAll("}", "").replaceAll(",", "").replaceAll("\"", ""), twoCode); - } catch (Exception e) { - throw new RuntimeException(e); - } - String modelStr = ""; - for (String model : models) { - modelStr += "," + model; - } - String finalModelStr = modelStr; - String sampleEn = insSampleMapper.getSampleEn(insOrder.getSample()); - String orderType = insOrderMapper.getEnumLabelByValue(insOrder.getOrderType()); - String formType = insOrderMapper.getEnumLabelByValue(insOrder.getFormType()); - ConfigureBuilder builder = Configure.builder(); - builder.useSpringEL(true); - List<Map<String, String>> finalDeviceList = deviceList; - Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery().eq(InsSampleUser::getInsSampleId, orderId).last("limit 1")).getUserId(); - String signatureUrl; - try { - signatureUrl = userMapper.selectById(userId).getSignatureUrl(); - } catch (Exception e) { - throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); - } - if (ObjectUtils.isEmpty(signatureUrl) || signatureUrl.equals("")) { - throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); - } - //Custom custom = customMapper.selectById(user.get("company")); - Custom custom = customMapper.selectById(insOrder.getCompanyId()); - if (!resultCh.get().equals("")) { - resultCh.set("渚濇嵁濮旀墭瑕佹眰锛�" + resultCh.get().replaceFirst("銆�", "") + "绛夋墍妫�椤圭洰涓嶇鍚堣姹傦紝鍏朵綑鎵�妫�椤圭洰鍧囩鍚堣姹傘��"); - resultEn.set("According to commissioned requirements," + resultEn.get().replaceFirst("銆�", "") + " these inspected items do not meet the requirements, all other inspected items meet the requirements."); - } else { - resultCh.set("渚濇嵁濮旀墭瑕佹眰锛屾墍妫�椤圭洰鍧囩鍚堣姹傘��"); - resultEn.set("According to commissioned requirements, all the tested items meet the requirements."); - } - - - /*鍏夌氦閰嶇疆鐨勬楠屾姤鍛�*/ - //鍏堝垽鏂槸鍚︽湁鍏夌氦閰嶇疆 - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).distinct().collect(Collectors.toList())) - .isNotNull(InsProduct::getInsFiberId) - .isNull(InsProduct::getInspectionItemClass));//鐢ㄦ楠屽垎椤瑰瓧娈靛尯鍒厜绾ら厤缃笌娓╁害寰幆 - List<Map<String, Object>> tables2 = new ArrayList<>(); - if (insProducts.size() > 0) { - samples.forEach(sample -> { - List<InsProduct> insProducts1 = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .isNull(InsProduct::getInspectionItemClass)); - List<InsProduct> filteredProducts = insProducts1.stream() - .collect(Collectors.groupingBy(product -> product.getInspectionItem() + product.getInspectionItemSubclass())) - .values().stream() - .map(group -> group.get(0)) - .sorted(Comparator.comparing(InsProduct::getInspectionItem)) - .collect(Collectors.toList()); - long size = insProducts1.stream().map(insProduct -> { - return (insProduct.getInspectionItem() + insProduct.getInspectionItemSubclass()); - }).distinct().collect(Collectors.toList()).size(); - long size2 = insProducts1.stream().map(InsProduct::getInsFiberId).distinct().count(); - long number = 7; - long k = 0; - long index2 = 1; - for (long c = 0; c < size; c++) { - if (c % number == 0) { - List<RowRenderData> rows = new ArrayList<>(); - //鍒ゆ柇妫�楠岄」鐩槸鍚︽湁鐖跺瓙鍏崇郴 - Boolean state = true; - for (InsProduct insProduct : filteredProducts) { - if (!insProduct.getInspectionItemSubclass().equals("") && insProduct.getInspectionItemSubclass() != null) { - state = false; - } - } - int a = 1; - if (!state) { - a = 2; - } - //琛ㄦ牸鐨勮鏁� - for (long i = 0; i < size2 + a; i++) { - RowRenderData rowRenderData = new RowRenderData(); - - RowStyle rowStyle = new RowStyle(); - rowStyle.setHeight(40); - rowRenderData.setRowStyle(rowStyle); - List<CellRenderData> cells = new ArrayList<>(); - //琛ㄦ牸鐨勫垪鏁� - for (long j = 0; j < 9; j++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (i == 0) { - //绗竴琛� - if (j == 0) { - //绗竴鍒� - textRenderData.setText("绠¤壊鏍嘆Pipe鈭�100"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1) { - //绗簩鍒� - textRenderData.setText("鍏夌氦鑹叉爣@Scanning Number鈭�101"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //椤圭洰淇℃伅 - try { - filteredProducts.get((int) (j - 2 + k)); - } catch (Exception e) { - continue; - } - textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItem() + "@" + insProducts1.get((int) (j - 2 + k)).getInspectionItemEn() + "鈭�" + (j + 101 + k)); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (a == 2 && i == 1) { - //鏈夌埗瀛愰」鐩叧绯荤殑绗笁琛� - if (j == 0) { - //绗竴鍒� - textRenderData.setText("绠¤壊鏍嘆Pipe鈭�100"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1) { - //绗簩鍒� - textRenderData.setText("鍏夌氦鑹叉爣@Scanning Number鈭�101"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //椤圭洰淇℃伅 - try { - filteredProducts.get((int) (j - 2 + k)); - } catch (Exception e) { - continue; - } - //鍒ゆ柇鏄惁鏈夐」鐩瓙绫� - if (filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclass().equals("") || filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclass() == null) { - textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItem() + "@" + filteredProducts.get((int) (j - 2 + k)).getInspectionItemEn() + "鈭�" + (j + 101 + k)); - } else { - textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclass() + "@" + filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclassEn()); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else { - int aa; - if (a == 2) { - aa = (int) i - 2; - } else aa = (int) i - 1; - List<Integer> list = insProducts1.stream().map(InsProduct::getInsFiberId).distinct().collect(Collectors.toList()); - try { - insFiberMapper.selectById(list.get(aa)); - } catch (Exception e) { - continue; - } - InsFiber insFiber = insFiberMapper.selectById(list.get(aa)); - //濉�� - if (j == 0) { - //绗竴鍒� - textRenderData.setText(insFiber.getBushColor()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1) { - //绗簩鍒� - textRenderData.setText(insFiber.getColor()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //椤圭洰淇℃伅 - try { - filteredProducts.get((int) (j - 2 + k)); - } catch (Exception e) { - continue; - } - textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getLastValue()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - rowRenderData.setCells(cells); - if (rowRenderData.getCells().size() != 0) { - rows.add(rowRenderData); - } - } - TableRenderData tableRenderData = new TableRenderData(); - tableRenderData.setRows(rows); - int countSize = tableRenderData.getRows().get(0).getCells().size(); - for (RowRenderData row : tableRenderData.getRows()) { - /*for (CellRenderData cell : row.getCells()) { - System.out.print(cell.getParagraphs().get(0).getContents()); - } - System.out.println("");*/ - if (row.getCells().size() != countSize) { - throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑4"); - } - } - TableStyle tableStyle = new TableStyle(); - tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - Map<String, Object> table = new HashMap<>(); - table.put("table2", tableRenderData); - table.put("report", insReport); - table.put("sample_number", sample.getSampleCode()); - table.put("type", sample.getModel()); - table.put("index2", index2); - tables2.add(table); - k += 7; - index2++; - } - } - }); - } - tables2.forEach(table2 -> { - table2.put("tableSize2", tables2.size()); - }); - - /*娓╁害寰幆鐨勬楠屾姤鍛�*/ - //鍏堝垽鏂槸鍚︽湁娓╁害寰幆 - List<InsProduct> insProducts3 = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).distinct().collect(Collectors.toList())) - .isNotNull(InsProduct::getInspectionItemClass)//鐢ㄦ楠屽垎椤瑰瓧娈靛尯鍒厜绾ら厤缃笌娓╁害寰幆 - .isNotNull(InsProduct::getInsFiberId)); - List<Map<String, Object>> tables3 = new ArrayList<>(); - if (insProducts3.size() > 0) { - samples.forEach(sample -> { - //鏌ヨ娓╁害寰幆涓嬬殑妫�楠岄」鐩� - List<InsProduct> insPros = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getState, 1) - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .isNotNull(InsProduct::getInspectionItemClass)); - - //鑾峰彇鎵�鏈夋楠岄」鐩�,鎸夌収寰幆娆℃暟,鑹叉爣,娓╁害,nm杩涜鎺掑簭 - Map<String, Integer> temperatureToIdMap = new HashMap<>(); - for (InsProduct product : insPros) { - String temperature = product.getInspectionItemSubclass(); - int id = product.getId(); - temperatureToIdMap.putIfAbsent(temperature, id); - if (temperatureToIdMap.get(temperature) > id) { - temperatureToIdMap.put(temperature, id); - } - } - - // 鑷畾涔夋帓搴� - Collections.sort(insPros, new Comparator<InsProduct>() { - @Override - public int compare(InsProduct p1, InsProduct p2) { - // 棣栧厛鎸塯etInspectionItem鎺掑簭 - int result = p1.getInspectionItem().compareTo(p2.getInspectionItem()); - if (result != 0) { - return result; - } - // 濡傛灉getInspectionItem鐩哥瓑锛屽啀鎸塯etInsFiberId鎺掑簭 - result = p1.getInsFiberId().compareTo(p2.getInsFiberId()); - if (result != 0) { - return result; - } - // 濡傛灉getInsFiberId涔熺浉绛夛紝鏈�鍚庢寜getInspectionItemSubclass鎺掑簭 - return compareTemperature(p1.getInspectionItemSubclass(), p2.getInspectionItemSubclass()); - } - - private int compareTemperature(String temp1, String temp2) { - // 鏍规嵁娓╁害瀵瑰簲鐨刬d杩涜鎺掑簭 - int id1 = temperatureToIdMap.get(temp1); - int id2 = temperatureToIdMap.get(temp2); - - return Integer.compare(id1, id2); - } - }); - List<InsProduct> filteredProducts = insPros; - //鑾峰彇鎵�鏈夊厜绾よ壊鏍� - List<InsFiber> insFibers = insFiberMapper.selectBatchIds(insPros.stream().map(InsProduct::getInsFiberId).collect(Collectors.toList())); - //鑾峰彇鎵�鏈夌殑娓╁害(闄や簡绗竴涓�20鈩�(甯告俯)) - List<String> temperature = insPros.stream().map(InsProduct::getInspectionItemSubclass).filter(s -> !s.equals("20鈩�(甯告俯)")).distinct().collect(Collectors.toList()); - //鑾峰彇鎵�鏈夌殑娓╁害(闄や簡绗竴涓�20鈩�(甯告俯)鍜屾渶鍚庝竴涓�20鈩�) - List<String> temperature2 = insPros.stream().map(InsProduct::getInspectionItemSubclass).filter(s -> !s.equals("20鈩�(甯告俯)")).filter(s -> !s.equals("20鈩�")).distinct().collect(Collectors.toList()); - //鑾峰彇鎵�鏈夌殑鍏夌氦椤圭洰(1310nm) - List<String> nm = insPros.stream().map(InsProduct::getInspectionItemClass).distinct().collect(Collectors.toList()); - //鑾峰彇鎵�鏈夋楠岄」鐩殑鏁伴噺(鍒楁暟)(杩欓噷闇�瑕佹敞鎰忎袱涓俯搴�,涓�涓槸20鈩冨父娓�(鍙湁绗竴娆″惊鐜墠鏈�),鍙︿竴涓槸20鈩�(鍙湁鏈�鍚庝竴涓惊鐜墠鏈�)) - long size = insPros.stream().map(insProduct -> { - return (insProduct.getInspectionItemSubclass() + insProduct.getInspectionItemClass()); - }).distinct().collect(Collectors.toList()).size(); - //鑾峰彇寰幆娆℃暟(琛ㄦ牸鐨勬暟閲�) - int size1 = insPros.stream().map(InsProduct::getInspectionItem).distinct().collect(Collectors.toList()).size(); - //鑾峰彇鍏夌氦鑹叉爣鐨勬暟閲�(琛屾暟) - long size2 = insPros.stream().map(InsProduct::getInsFiberId).distinct().count(); - long index3 = 1; - for (int i = 0; i < size1; i++) { - //鎸夌収寰幆娆℃暟鐢熸垚瀵瑰簲鏁伴噺鐨勮〃鏍� - List<RowRenderData> rows = new ArrayList<>(); - //琛ㄦ牸鐨勮鏁�(鍏夌氦鑹叉爣鐨勬暟閲�+8) - for (long j = 0; j < size2 + 8; j++) { - RowRenderData rowRenderData = new RowRenderData(); - RowStyle rowStyle = new RowStyle(); - rowStyle.setHeight(40); - rowRenderData.setRowStyle(rowStyle); - List<CellRenderData> cells = new ArrayList<>(); - //琛ㄦ牸鐨勫垪鏁伴渶瑕佹牴鎹惊鐜殑娆℃暟瀵瑰簲鐨勬敼鍙� - if (size1 == 1) { - //濡傛灉鍙惊鐜竴娆�,閭d箞鍒楁暟鍖呮嫭20鈩冨拰20鈩冨父娓�(2 * size - nm.size()+1) - for (long k = 0; k < 2 * size - nm.size() + 1; k++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (j == 0) { - //绗竴琛� - if (k <= (2 * size - nm.size() + 1) / 4) { - //绗竴鍒� - textRenderData.setText("鏍峰搧缂栧彿@Sample number鈭�1000"); - } else if (k > (2 * size - nm.size() + 1) / 4 && k <= (2 * size - nm.size() + 1) / 2) { - //绗簩鍒� - textRenderData.setText(sample.getSampleCode() + "鈭�998"); - } else if (k > (2 * size - nm.size() + 1) / 2 && k < 2 * size - nm.size()) { - //绗笁鍒� - textRenderData.setText("瑙勬牸鍨嬪彿@Type 鈭�999"); - } else { - //绗洓鍒� - textRenderData.setText(sample.getModel()); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1) { - //绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - } else { - textRenderData.setText("妫�娴嬬粨鏋�(寰幆" + (i + 1) + ")鈭�1005"); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 2) { - //绗笁琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k > 0 && k <= nm.size()) { - //绗簩鍒� - textRenderData.setText("20鈩�(甯告俯)鈭�1006"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鏍规嵁娓╁害寰幆 - for (int i1 = 0; i1 < temperature.size(); i1++) { - if (k > (2 * i1 + 1) * nm.size() && k <= (2 * i1 + 3) * nm.size()) { - //绗笁鍒� - textRenderData.setText(temperature.get(i1) + "鈭�52" + i1); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } else if (j == 3) { - //绗洓琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k > 0 && k <= nm.size()) { - //绗簩鍒楀拰绗笁鍒� - for (int i1 = 0; i1 < nm.size(); i1++) { - if (k == i1 + 1) { - textRenderData.setText(nm.get(i1)); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } else { - for (int j1 = 0; j1 < temperature.size(); j1++) { - for (int i1 = 0; i1 < nm.size(); i1++) { - if (k > (i1 + 1 + 2 * j1) * nm.size() && k <= (i1 + 1 + 2 * j1) * nm.size() + 2) { - textRenderData.setText(nm.get(i1)); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } - } else if (j == 4) { - //绗簲琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k > 0 && k <= nm.size()) { - //绗簩鍒楀拰绗笁鍒� - textRenderData.setText("琛板噺"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k > nm.size() && (k - (nm.size())) % 2 == 0) { - textRenderData.setText("|鈭� 伪|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("琛板噺"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 5) { - //鍊掓暟绗笁琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("|max|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k <= nm.size()) { - //璁$畻20鈩冨父娓╃殑绗�(k-1)涓」鐩殑鎵�鏈夎壊鏍囩殑骞冲潎鍊肩殑鏈�澶у�� - List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") - .eq(InsProduct::getInspectionItemClass, nm.get((int) (k - 1)))).stream().map(InsProduct::getId).collect(Collectors.toList()); - List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips); - Optional<String> max = insProductResults.stream().map(insProductResult -> { - return insProductResult.getComValue().split(":")[1].split("\"")[1]; - }).filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if ((k - (nm.size())) % 2 == 0) { - //璁$畻绗�()娓╁害鐨勭()涓」鐩殑鎵�鏈夎壊鏍囩殑鏈�缁堝�肩殑鏈�澶у�� - Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k / (nm.size() + 2)) - 1))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - (nm.size() + 2)) / 2 % nm.size())))) - .stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //璁$畻绗�()娓╁害鐨勭()涓」鐩殑鎵�鏈夎壊鏍囩殑骞冲潎鍊肩殑鏈�澶у�� - List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (((k + 1) / (nm.size() + 2)) - 1))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) (((k + 1) - (nm.size() + 2)) / 2 % nm.size())))).stream().map(InsProduct::getId).collect(Collectors.toList()); - List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips); - Optional<String> max = insProductResults.stream().map(insProductResult -> { - return insProductResult.getComValue().split(":")[1].split("\"")[1]; - }).filter(value -> !value.isEmpty()).max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 6) { - //鍊掓暟绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("|鈭� 伪 max|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k <= nm.size()) { - textRenderData.setText("-"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if ((k - (nm.size())) % 2 == 0) { - Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k / (nm.size() + 2)) - 1))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - (nm.size() + 2)) / 2 % nm.size())))) - .stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("-"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 7) { - //鍊掓暟绗竴琛� - textRenderData.setText("鈥渱鈭� 伪|鈥濊〃绀洪檮鍔犺“鍑忕粷瀵瑰�尖垜111111"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鍏朵綑濉啓妫�楠屽�肩殑鍐呭 - if (k == 0) { - //绗竴鍒楀~鍐欒壊鏍� - textRenderData.setText(insFibers.get((int) (j - 5)).getColor()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k <= nm.size()) { - //绗簩鍒楀拰绗笁鍒楀~鍐�20鈩冨父娓╃殑骞冲潎鍊�(result琛ㄩ噷闈㈢殑com_value) - textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size() + 1) * nm.size() + k - 1)).getId())).getComValue().split(":")[1].split("\"")[1]); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if ((k - (nm.size())) % 2 == 0) { - //濉啓琛板噺宸氨鏄痩ast_value - textRenderData.setText(filteredProducts.get((int) ((j - 5) * (temperature.size() + 1) * nm.size() + k / 2)).getLastValue()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //濉啓鍏朵綑姝e父娓╁害鐨勮“鍑�(result琛ㄩ噷闈㈢殑com_value) - textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size() + 1) * nm.size() + (k + 1) / 2)).getId())).getComValue().split(":")[1].split("\"")[1]); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - rowRenderData.setCells(cells); - if (rowRenderData.getCells().size() != 0) { - rows.add(rowRenderData); - } - } else { - //濡傛灉鏈夊娆″惊鐜� - if (i == 0) { - //绗竴娆″惊鐜殑鍒楁暟,閭d箞鍒楁暟鍖呮嫭20鈩冨父娓�(2 * (size-nm.size()) -nm.size()+1) - for (long k = 0; k < 2 * (size - nm.size()) - nm.size() + 1; k++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (j == 0) { - //绗竴琛� - if (k <= (2 * (size - nm.size()) - nm.size() + 1) / 4) { - //绗竴鍒� - textRenderData.setText("鏍峰搧缂栧彿@Sample number鈭�1000"); - } else if (k > (2 * (size - nm.size()) - nm.size() + 1) / 4 && k <= (2 * (size - nm.size()) - nm.size() + 1) / 2) { - //绗簩鍒� - textRenderData.setText(sample.getSampleCode() + "鈭�998"); - } else if (k > (2 * (size - nm.size()) - nm.size() + 1) / 2 && k < 2 * (size - nm.size()) - nm.size()) { - //绗笁鍒� - textRenderData.setText("瑙勬牸鍨嬪彿@Type鈭�999"); - } else { - //绗洓鍒� - textRenderData.setText(sample.getModel()); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1) { - //绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - } else { - textRenderData.setText("妫�娴嬬粨鏋�(寰幆" + (i + 1) + ")鈭�1005"); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 2) { - //绗笁琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k > 0 && k <= nm.size()) { - //绗簩鍒� - textRenderData.setText("20鈩�(甯告俯)鈭�1006"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鏍规嵁娓╁害寰幆 - for (int i1 = 0; i1 < temperature2.size(); i1++) { - if (k > (2 * i1 + 1) * nm.size() && k <= (2 * i1 + 3) * nm.size()) { - //绗笁鍒� - textRenderData.setText(temperature2.get(i1) + "鈭�52" + i1); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } else if (j == 3) { - //绗洓琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k > 0 && k <= nm.size()) { - //绗簩鍒楀拰绗笁鍒� - for (int i1 = 0; i1 < nm.size(); i1++) { - if (k == i1 + 1) { - textRenderData.setText(nm.get(i1)); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } else { - for (int j1 = 0; j1 < temperature2.size(); j1++) { - for (int i1 = 0; i1 < nm.size(); i1++) { - if (k > (i1 + 1 + 2 * j1) * nm.size() && k <= (i1 + 1 + 2 * j1) * nm.size() + 2) { - textRenderData.setText(nm.get(i1)); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } - } else if (j == 4) { - //绗簲琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k > 0 && k <= nm.size()) { - //绗簩鍒楀拰绗笁鍒� - textRenderData.setText("琛板噺"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k > nm.size() && (k - (nm.size())) % 2 == 0) { - textRenderData.setText("|鈭� 伪|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("琛板噺"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 5) { - //鍊掓暟绗笁琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("|max|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k <= nm.size()) { - //璁$畻20鈩冨父娓╃殑绗�(k-1)涓」鐩殑鎵�鏈夎壊鏍囩殑骞冲潎鍊肩殑鏈�澶у�� - List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") - .eq(InsProduct::getInspectionItemClass, nm.get((int) (k - 1)))).stream().map(InsProduct::getId).collect(Collectors.toList()); - List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips); - Optional<String> max = insProductResults.stream().map(insProductResult -> { - return insProductResult.getComValue().split(":")[1].split("\"")[1]; - }).filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if ((k - (nm.size())) % 2 == 0) { - //璁$畻绗�()娓╁害鐨勭()涓」鐩殑鎵�鏈夎壊鏍囩殑鏈�缁堝�肩殑鏈�澶у�� - Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k / (nm.size() + 2)) - 1))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - (nm.size() + 2)) / 2 % nm.size())))) - .stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //璁$畻绗�()娓╁害鐨勭()涓」鐩殑鎵�鏈夎壊鏍囩殑骞冲潎鍊肩殑鏈�澶у�� - List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (((k + 1) / (nm.size() + 2)) - 1))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) (((k + 1) - (nm.size() + 2)) / 2 % nm.size())))).stream().map(InsProduct::getId).collect(Collectors.toList()); - List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips); - Optional<String> max = insProductResults.stream().map(insProductResult -> { - return insProductResult.getComValue().split(":")[1].split("\"")[1]; - }).filter(value -> !value.isEmpty()).max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 6) { - //鍊掓暟绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("|鈭� 伪 max|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k <= nm.size()) { - textRenderData.setText("-"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if ((k - (nm.size())) % 2 == 0) { - Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k / (nm.size() + 2)) - 1))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - (nm.size() + 2)) / 2 % nm.size())))) - .stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("-"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 7) { - //鍊掓暟绗竴琛� - textRenderData.setText("鈥渱鈭� 伪|鈥濊〃绀洪檮鍔犺“鍑忕粷瀵瑰�尖垜111111"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鍏朵綑濉啓妫�楠屽�肩殑鍐呭 - if (k == 0) { - //绗竴鍒楀~鍐欒壊鏍� - textRenderData.setText(insFibers.get((int) (j - 5)).getColor()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k <= nm.size()) { - //绗簩鍒楀拰绗笁鍒楀~鍐�20鈩冨父娓╃殑骞冲潎鍊�(result琛ㄩ噷闈㈢殑com_value) - textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size() + 1) * nm.size() + k - 1)).getId())).getComValue().split(":")[1].split("\"")[1]); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if ((k - (nm.size())) % 2 == 0) { - //濉啓琛板噺宸氨鏄痩ast_value - textRenderData.setText(filteredProducts.get((int) ((j - 5) * (temperature.size()) * nm.size() + k / 2)).getLastValue()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //濉啓鍏朵綑姝e父娓╁害鐨勮“鍑�(result琛ㄩ噷闈㈢殑com_value) - textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size()) * nm.size() + (k + 1) / 2)).getId())).getComValue().split(":")[1].split("\"")[1]); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } else if (i == size1 - 1) { - //鏈�鍚庝竴娆″惊鐜殑鍒楁暟,閭d箞鍒楁暟鍖呮嫭20鈩�(2 * (size-nm.size())+1) - for (long k = 0; k < 2 * (size - nm.size()) + 1; k++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (j == 0) { - //绗竴琛� - if (k <= (2 * (size - nm.size()) + 1) / 4) { - //绗竴鍒� - textRenderData.setText("鏍峰搧缂栧彿@Sample number鈭�1000"); - } else if (k > (2 * (size - nm.size()) + 1) / 4 && k <= (2 * (size - nm.size()) + 1) / 2) { - //绗簩鍒� - textRenderData.setText(sample.getSampleCode() + "鈭�998"); - } else if (k > (2 * (size - nm.size()) + 1) / 2 && k < 2 * (size - nm.size())) { - //绗笁鍒� - textRenderData.setText("瑙勬牸鍨嬪彿@Type鈭�999"); - } else { - //绗洓鍒� - textRenderData.setText(sample.getModel()); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1) { - //绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - } else { - textRenderData.setText("妫�娴嬬粨鏋�(寰幆" + (i + 1) + ")鈭�1005"); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 2) { - //绗笁琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鏍规嵁娓╁害寰幆 - for (int i1 = 0; i1 < temperature.size(); i1++) { - if (k > (2 * i1) * nm.size() && k <= (2 * i1 + 2) * nm.size()) { - //绗笁鍒� - textRenderData.setText(temperature.get(i1) + "鈭�52" + i1); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } else if (j == 3) { - //绗洓琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - for (int j1 = 0; j1 < temperature.size(); j1++) { - for (int i1 = 0; i1 < nm.size(); i1++) { - if (k > (i1 + 2 * j1) * nm.size() && k <= (i1 + 2 * j1) * nm.size() + 2) { - textRenderData.setText(nm.get(i1)); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } - } else if (j == 4) { - //绗簲琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k % 2 == 0) { - textRenderData.setText("|鈭� 伪|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("琛板噺"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 5) { - //鍊掓暟绗笁琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("|max|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k % 2 == 0) { - //璁$畻绗�()娓╁害鐨勭()涓」鐩殑鎵�鏈夎壊鏍囩殑鏈�缁堝�肩殑鏈�澶у�� - Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k - 1) / (2 * nm.size())))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - nm.size()) / 2 % nm.size())))) - .stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //璁$畻绗�()娓╁害鐨勭()涓」鐩殑鎵�鏈夎壊鏍囩殑骞冲潎鍊肩殑鏈�澶у�� - List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (k / (2 * nm.size())))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) (((k + 1) - nm.size()) / 2 % nm.size())))).stream().map(InsProduct::getId).collect(Collectors.toList()); - List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips); - Optional<String> max = insProductResults.stream().map(insProductResult -> { - return insProductResult.getComValue().split(":")[1].split("\"")[1]; - }).filter(value -> !value.isEmpty()).max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 6) { - //鍊掓暟绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("|鈭� 伪 max|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k % 2 == 0) { - Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k - 1) / (2 * nm.size())))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - nm.size()) / 2 % nm.size())))) - .stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("-"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 7) { - //鍊掓暟绗竴琛� - textRenderData.setText("鈥渱鈭� 伪|鈥濊〃绀洪檮鍔犺“鍑忕粷瀵瑰�尖垜111111"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鍏朵綑濉啓妫�楠屽�肩殑鍐呭 - if (k == 0) { - //绗竴鍒楀~鍐欒壊鏍� - textRenderData.setText(insFibers.get((int) (j - 5)).getColor()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k % 2 == 0) { - //濉啓琛板噺宸氨鏄痩ast_value - textRenderData.setText(filteredProducts.get((int) ((j - 5) * (temperature.size()) * nm.size() + ((temperature.size() * nm.size() * size2 * i) - (size2 * nm.size() * (i - 1))) + (k - 2) / 2)).getLastValue()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //濉啓鍏朵綑姝e父娓╁害鐨勮“鍑�(result琛ㄩ噷闈㈢殑com_value) - textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size()) * nm.size() + ((temperature.size() * nm.size() * size2 * i) - (size2 * nm.size() * (i - 1))) + ((k - 2) + 1) / 2)).getId())).getComValue().split(":")[1].split("\"")[1]); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } else { - //鍏朵綑寰幆鐨勫垪鏁�,,閭d箞鍒楁暟涓嶅寘鎷�20鈩�+20鈩�(甯告俯)(2 * (size- 2*nm.size()) +1) - for (long k = 0; k < 2 * (size - 2 * nm.size()) + 1; k++) { - CellRenderData cellRenderData = new CellRenderData(); - CellStyle cellStyle = new CellStyle(); - cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); - cellRenderData.setCellStyle(cellStyle); - List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>(); - ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); - ParagraphStyle paragraphStyle = new ParagraphStyle(); - paragraphStyle.setAlign(ParagraphAlignment.CENTER); - paragraphRenderData.setParagraphStyle(paragraphStyle); - List<RenderData> renderData = new ArrayList<>(); - TextRenderData textRenderData = new TextRenderData(); - Style style = new Style(); - style.setFontFamily("瀹嬩綋"); - style.setColor("000000"); - textRenderData.setStyle(style); - if (j == 0) { - //绗竴琛� - if (k <= (2 * (size - 2 * nm.size()) + 1) / 4) { - //绗竴鍒� - textRenderData.setText("鏍峰搧缂栧彿@Sample number鈭�1000"); - } else if (k > (2 * (size - 2 * nm.size()) + 1) / 4 && k <= (2 * (size - 2 * nm.size()) + 1) / 2) { - //绗簩鍒� - textRenderData.setText(sample.getSampleCode() + "鈭�998"); - } else if (k > (2 * (size - 2 * nm.size()) + 1) / 2 && k < 2 * (size - 2 * nm.size())) { - //绗笁鍒� - textRenderData.setText("瑙勬牸鍨嬪彿@Type鈭�999"); - } else { - //绗洓鍒� - textRenderData.setText(sample.getModel()); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 1) { - //绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - } else { - textRenderData.setText("妫�娴嬬粨鏋�(寰幆" + (i + 1) + ")鈭�1005"); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (j == 2) { - //绗笁琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鏍规嵁娓╁害寰幆 - for (int i1 = 0; i1 < temperature2.size(); i1++) { - if (k > (2 * i1) * nm.size() && k <= (2 * i1 + 2) * nm.size()) { - //绗笁鍒� - textRenderData.setText(temperature2.get(i1) + "鈭�52" + i1); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } else if (j == 3) { - //绗洓琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - for (int j1 = 0; j1 < temperature2.size(); j1++) { - for (int i1 = 0; i1 < nm.size(); i1++) { - if (k > (i1 + 2 * j1) * nm.size() && k <= (i1 + 2 * j1) * nm.size() + 2) { - textRenderData.setText(nm.get(i1)); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } - } else if (j == 4) { - //绗簲琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("鍏夌氦鑹叉爣@ScanningNumber鈭�1004"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k % 2 == 0) { - textRenderData.setText("|鈭� 伪|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("琛板噺"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 5) { - //鍊掓暟绗笁琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("|max|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k % 2 == 0) { - //璁$畻绗�()娓╁害鐨勭()涓」鐩殑鎵�鏈夎壊鏍囩殑鏈�缁堝�肩殑鏈�澶у�� - Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (((k - 1) / (2 * nm.size()))))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - nm.size()) / 2 % nm.size())))) - .stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //璁$畻绗�()娓╁害鐨勭()涓」鐩殑鎵�鏈夎壊鏍囩殑骞冲潎鍊肩殑鏈�澶у�� - List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (k / (2 * nm.size())))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) (((k + 1) - nm.size()) / 2 % nm.size())))).stream().map(InsProduct::getId).collect(Collectors.toList()); - List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips); - Optional<String> max = insProductResults.stream().map(insProductResult -> { - return insProductResult.getComValue().split(":")[1].split("\"")[1]; - }).filter(value -> !value.isEmpty()).max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 6) { - //鍊掓暟绗簩琛� - if (k == 0) { - //绗竴鍒� - textRenderData.setText("|鈭� 伪 max|"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k % 2 == 0) { - Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sample.getId()) - .isNotNull(InsProduct::getInsFiberId) - .eq(InsProduct::getInspectionItem, i + 1) - .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k - 1) / (2 * nm.size())))) - .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - nm.size()) / 2 % nm.size())))) - .stream().map(InsProduct::getLastValue) - .filter(value -> !value.isEmpty()) - .max(String::compareTo); - if (max.isPresent()) { - textRenderData.setText(max.get()); - } else { - textRenderData.setText(""); - } - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - textRenderData.setText("-"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } else if (j == size2 + 7) { - //鍊掓暟绗竴琛� - textRenderData.setText("鈥渱鈭� 伪|鈥濊〃绀洪檮鍔犺“鍑忕粷瀵瑰�尖垜111111"); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //鍏朵綑濉啓妫�楠屽�肩殑鍐呭 - if (k == 0) { - //绗竴鍒楀~鍐欒壊鏍� - textRenderData.setText(insFibers.get((int) (j - 5)).getColor()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else if (k % 2 == 0) { - //濉啓琛板噺宸氨鏄痩ast_value - textRenderData.setText(filteredProducts.get((int) ((j - 5) * (temperature.size() - 1) * nm.size() + (temperature.size() * nm.size() * size2) + (k - 2) / 2)).getLastValue()); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } else { - //濉啓鍏朵綑姝e父娓╁害鐨勮“鍑�(result琛ㄩ噷闈㈢殑com_value) - textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size() - 1) * nm.size() + (temperature.size() * nm.size() * size2) + ((k - 2) + 1) / 2)).getId())).getComValue().split(":")[1].split("\"")[1]); - renderData.add(textRenderData); - paragraphRenderData.setContents(renderData); - paragraphRenderDataList.add(paragraphRenderData); - cellRenderData.setParagraphs(paragraphRenderDataList); - cells.add(cellRenderData); - } - } - } - } - rowRenderData.setCells(cells); - if (rowRenderData.getCells().size() != 0) { - rows.add(rowRenderData); - } - } - } - TableRenderData tableRenderData = new TableRenderData(); - tableRenderData.setRows(rows); - int countSize = tableRenderData.getRows().get(0).getCells().size(); - for (RowRenderData row : tableRenderData.getRows()) { - /*for (CellRenderData cell : row.getCells()) { - System.out.print(cell.getParagraphs().get(0).getContents()); - } - System.out.println("");*/ - if (row.getCells().size() != countSize) { - throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑5"); - } - } - TableStyle tableStyle = new TableStyle(); - tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH); - tableStyle.setAlign(TableRowAlign.CENTER); - BorderStyle borderStyle = new BorderStyle(); - borderStyle.setColor("000000"); - borderStyle.setType(XWPFTable.XWPFBorderType.THICK); - borderStyle.setSize(14); - tableStyle.setLeftBorder(borderStyle); - tableStyle.setTopBorder(borderStyle); - tableStyle.setRightBorder(borderStyle); - tableStyle.setBottomBorder(borderStyle); - tableRenderData.setTableStyle(tableStyle); - Map<String, Object> table = new HashMap<>(); - table.put("table3", tableRenderData); - table.put("report", insReport); - table.put("index3", index3); - tables3.add(table); - index3++; - } - }); - } - tables3.forEach(table3 -> { - table3.put("tableSize3", tables3.size()); - }); - - /*鑾峰彇闄勪欢鍥剧墖绫诲瀷*/ - List<Map<String, Object>> images = new ArrayList<>(); - List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery().eq(InsOrderFile::getType, 1).eq(InsOrderFile::getInsOrderId, orderId)); - if (CollectionUtils.isNotEmpty(insOrderFiles)) { - insOrderFiles.forEach(insOrderFile -> { - Map<String, Object> image = new HashMap<>(); - PictureRenderData pictureRenderData = Pictures.ofLocal(imgUrl + "/" + insOrderFile.getFileUrl()).sizeInCm(17, 20).create(); - image.put("url", pictureRenderData); - image.put("report", insReport); - images.add(image); - }); - } - //濮旀墭浜哄拰鐢佃瘽瀛楁鍒ゆ柇 - if (ObjectUtils.isEmpty(insOrder.getPrepareUser())) { - insOrder.setPrepareUser("/"); - } - if (ObjectUtils.isEmpty(insOrder.getPhone())) { - insOrder.setPhone("/"); - } - //妫�楠岄」鐩殑鐜 - InsProduct insProduct = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).eq(InsProduct::getInsSampleId, samples.get(0).getId())).get(0); - String environment = ""; - environment = (ObjectUtils.isNotEmpty(insProduct.getTemperature()) ? insProduct.getTemperature() + "鈩� " : "") + (ObjectUtils.isNotEmpty(insProduct.getHumidity()) ? insProduct.getHumidity() + "%" : ""); - String finalEnvironment = environment; - XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render( - new HashMap<String, Object>() {{ - put("order", insOrder); - put("report", insReport); - put("environment", finalEnvironment); - put("custom", custom); - put("sampleSize", samples.size()); - put("tables", tables); - put("tableSize", tables.size() + 1); - put("tables2", tables2); - put("tableSize2", tables2.size()); - put("tables3", tables3); - put("tableSize3", tables3.size()); - put("tables4", tables4); - put("tableSize4", tables4.size()); - put("standardMethod", (standardMethod2.toString().equals("null") ? "" : standardMethod2)); - put("deviceList", finalDeviceList); - put("twoCode", Pictures.ofLocal(codePath).create()); - put("models", finalModelStr.replace(",", "")); - put("productSize", productSize); - put("createTime", now.format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"))); - put("createTimeEn", monthNames[now.getMonthValue() - 1] + " " + now.getDayOfMonth() + ", " + now.getYear()); - put("insTime", insOrder.getInsTime().format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"))); - put("insTimeEn", monthNames[insOrder.getInsTime().getMonthValue() - 1] + " " + now.getDayOfMonth() + ", " + now.getYear()); - put("writeUrl", null); - put("insUrl", Pictures.ofLocal(imgUrl + "/" + signatureUrl).create()); - put("images", images); - put("examineUrl", null); - put("ratifyUrl", null); - put("sampleEn", sampleEn); - put("orderType", orderType); - put("getTime", insOrder.getExamineTime().format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"))); - put("getTimeEn", monthNames[insOrder.getExamineTime().getMonthValue() - 1] + " " + insOrder.getExamineTime().getDayOfMonth() + ", " + insOrder.getExamineTime().getYear()); - put("seal1", null); - put("seal2", null); - put("formTypeCh", formType); - put("formTypeEn", insOrder.getFormType()); - put("resultCh", resultCh.get()); - put("resultEn", resultEn.get()); - }}); - try { - String name = insReport.getCode().replace("/", "") + ".docx"; - template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name))); - insReport.setUrl("/word/" + name); - insReportMapper.insert(insReport); - insOrder.setInsState(5); - insOrderMapper.updateById(insOrder); - } catch (IOException e) { - throw new RuntimeException(e); - } - // 澶勭悊鍚堝苟鍗曞厓鏍肩殑闂 - String path = wordUrl + "/" + insReport.getCode().replace("/", "") + ".docx"; - try { - FileInputStream stream = new FileInputStream(path); - XWPFDocument document = new XWPFDocument(stream); - List<XWPFTable> xwpfTables = document.getTables(); - for (int i = 1; i < xwpfTables.size() - (deviceList == null ? 1 : 2); i++) { - Set<String> set1 = new HashSet<>(); - Map<String, Map<String, Integer>> maps = new HashMap<>(); - for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) { - for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) { - if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("鈭�") > -1) { - String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�"); - if (set1.add(split[1])) { - Map<String, Integer> map = new HashMap<>(); - map.put("sr", j); - map.put("sc", k); - map.put("er", j + 0); - map.put("ec", k + 0); - maps.put(split[1], map); - } else { - Map<String, Integer> map1 = maps.get(split[1]); - if (j == map1.get("sr")) { - map1.put("ec", map1.get("ec") + 1); - } else if (k == map1.get("sc")) { - map1.put("er", map1.get("er") + 1); - } - } - String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�")[0]; - xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); - xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str); - xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); - xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(ParagraphAlignment.CENTER); - } - } - } - List<String> list = new ArrayList<>(); - for (String s : maps.keySet()) { - list.add(s); - } - for (int a = list.size() - 1; a >= 0; a--) { - Map<String, Integer> v = maps.get(list.get(a)); - for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) { - if (v.get("ec") > v.get("sc")) { - try { - TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); - } catch (Exception e) { - } - } - } - if (v.get("er") > v.get("sr")) { - try { - TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); - } catch (Exception e) { - } - } - } - } - FileOutputStream fileOutputStream = new FileOutputStream(path); - document.write(fileOutputStream); - fileOutputStream.close(); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - //澶勭悊涓嫳鏂囨崲琛岀殑闂 - try { - FileInputStream stream1 = new FileInputStream(path); - XWPFDocument document1 = new XWPFDocument(stream1); - List<XWPFTable> xwpfTables1 = document1.getTables(); - for (int i = 1; i < xwpfTables1.size() - (deviceList == null ? 1 : 2); i++) { - for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) { - for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) { - if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) { - String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText(); - String[] split = text.split("@"); - xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); - XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph(); - XWPFRun run = xwpfParagraph.createRun(); - run.setText(split[0]); - if (ObjectUtils.isNotNull(split[1])) { - run.addBreak(); - run.setText(split[1]); - } - xwpfParagraph.setAlignment(ParagraphAlignment.CENTER); - } - } - } - } - FileOutputStream fileOutputStream1 = new FileOutputStream(path); - document1.write(fileOutputStream1); - fileOutputStream1.close(); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + List<InsUnPass> insUnPasses = new ArrayList<>(); + /*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/ + InsSample insSample = insSampleMapper.selectById(sampleId); + List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId, insSample.getId()) + .eq(InsProduct::getSonLaboratory, laboratory) + .eq(InsProduct::getState, 1)); + List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList()); + if (results.contains(0)) { + insSample.setInsResult(0); } else { - //澶嶆牳涓嶉�氳繃灏嗘妸澶嶆牳鐨勮礋璐d汉鍘绘帀 - Integer id = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery().eq(InsSampleUser::getInsSampleId, orderId).orderByDesc(InsSampleUser::getId).last("limit 1")).getId(); - insSampleUserMapper.deleteById(id); + insSample.setInsResult(1); + } + insSampleMapper.updateById(insSample); + /*澶嶆牳鍚庯紝灏嗕笉鍚堟牸鐨勯」鐩俊鎭坊鍔犲埌ins_un_pass琛ㄤ腑*/ + InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId()); + 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(insOrder.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); + /*type=0 鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/ + // 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰� + InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .orderByDesc(InsOrderState::getId) + .last("LIMIT 1")); // 纭繚鍙彇涓�鏉¤褰� + if (record != null) { + //鏇存柊璁板綍 + insOrderUserMapper.update(null, Wrappers.<InsOrderUser>lambdaUpdate() + .eq(InsOrderUser::getInsOrderStateId, record.getId()) + .eq(InsOrderUser::getNum, record.getNum()) + .set(InsOrderUser::getTell, tell)); + switch (type) { + case 0: + //鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�),娆℃暟閫掑(淇濈暀浠ュ墠鐨勬暟鎹�)锛� + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getId, record.getId()) + .set(InsOrderState::getInsTime, now) + .set(InsOrderState::getInsState, 4) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId) + .set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1 + .set(InsOrderState::getCreateTime, LocalDateTime.now())); + break; + case 1: + //缁х画璇曢獙:璇ョ珯鐐逛换鍔$粨鏉�(鍙互鍐嶆鎵爜妫�楠�)锛� + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsState, 6) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId)); + break; + case 2: + //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆� + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsState, 5) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId)); + //濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆 + if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) { + //鍑哄簱 + try { + outInsOrderState(laboratory, insSample.getSampleCode()); + } catch (Exception e) { + + } + } + insOrder.setState(4); + insOrderMapper.updateById(insOrder); + break; + } } return 1; } - private void getTemplateThing - (Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { + private void getTemplateThing(Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { for (InsProduct product : insProducts) { if (product.getTemplateId() == null) { product.setTemplate(new ArrayList<>()); @@ -3588,122 +1013,163 @@ } @Override - public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) { - 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()); + public int submitPlan(SubmitPlanDto submitPlanDto) { + InsSample insSample = insSampleMapper.selectById(submitPlanDto.getSampleId()); + InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, submitPlanDto.getSampleId()) + .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory()) + .orderByDesc(InsOrderState::getId) + .last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰� + /*璁板綍妫�楠屼换鍔℃瘡娆$殑澶囨敞淇℃伅*/ + InsOrderUser insOrderUser = new InsOrderUser(); + insOrderUser.setInsOrderStateId(orderState.getId()); + insOrderUser.setSubmitUser(getLook.selectPowerByMethodAndUserId(null).get("userId")); + insOrderUser.setSubmitTime(LocalDateTime.now()); + insOrderUser.setNum(orderState.getNum()); + insOrderUser.setNote(ObjectUtils.isNotEmpty(submitPlanDto.getNote()) ? submitPlanDto.getNote() : null); + insOrderUser.setTerm(ObjectUtils.isNotEmpty(submitPlanDto.getTerm()) ? submitPlanDto.getTerm() : null); + insOrderUserMapper.insert(insOrderUser); List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, ids) - .eq(InsProduct::getSonLaboratory, laboratory) - .eq(InsProduct::getState, 1) - .and(wrapper -> wrapper - .isNull(InsProduct::getInsResult) - .or() - .eq(InsProduct::getInsResult, 2) - ) - .isNull(InsProduct::getInsFiberId) - .isNull(InsProduct::getInsFibersId)); - insProducts.addAll(insProductMapper.selectFiberInsProduct(ids, laboratory)); + .eq(InsProduct::getInsSampleId, insSample.getId()) + .eq(InsProduct::getSonLaboratory, submitPlanDto.getLaboratory()) + .eq(InsProduct::getState, 1)); if (insProducts.size() > 0) { String str = ""; int count = 0; for (InsProduct product : insProducts) { - //濡傛灉鏄厜缂嗙殑娓╁害寰幆 - if (product.getInspectionItem().equals("娓╁害寰幆") && insOrderMapper.selectById(orderId).getSampleType().equals("鍏夌紗")) { - //鏌ヨ閭d簺寰幆娓╁害鐨勬楠岄」鐩殑缁撹鏄惁鍏ㄩ儴妫�楠� - List<InsProduct> insProductList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, product.getInsSampleId()) - .isNotNull(InsProduct::getInsFiberId).like(InsProduct::getInspectionItemSubclass, "鈩�")); - List<Integer> collect = insProductList.stream().filter(insProduct -> insProduct.getInsResult() != null).map(InsProduct::getInsResult).collect(Collectors.toList()); - List<Integer> tt = new ArrayList<>(); - tt.add(1); + //杈愬皠璇曢獙,娓╂箍搴﹁瘯楠�,鍔熺巼璇曢獙鐨勬楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩� + if (product.getInspectionItem().equals("杈愬皠璇曢獙") || product.getInspectionItem().equals("娓╂箍搴﹁瘯楠�") || product.getInspectionItem().equals("鍔熺巼璇曢獙")) { + product.setInsResult(3);//涓嶅垽瀹� + insProductMapper.updateById(product); + continue; + } + //鐢佃矾璇曢獙鐨勬楠岄」鐩�,闇�瑕佸湪鎻愪氦鐨勬椂鍊欏啀鍘昏祴鍊煎悎鏍间笌涓嶅悎鏍� + if (product.getInspectionItem().equals("鐢佃矾璇曢獙")) { + List<Integer> collect = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getNum, orderState.getNum()) + .eq(InsProductResult2::getInsProductId, product.getId())).stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList()); if (collect.contains(0)) { - product.setLastValue("涓嶅悎鏍�"); - product.setInsResult(0); - } else if (collect.size() == insProductList.size() && collect.stream().distinct().collect(Collectors.toList()).containsAll(tt)) { - product.setLastValue("鍚堟牸"); - product.setInsResult(1); + product.setInsResult(0);//涓嶅悎鏍� + } else { + product.setInsResult(1);//鍚堟牸 } insProductMapper.updateById(product); + continue; } - //濡傛灉鏄儹寰幆鎴栬�呮槸娓╁崌璇曢獙 - else if (product.getInspectionItem().equals("鐑惊鐜�") || product.getInspectionItem().equals("娓╁崌璇曢獙")) { - //鏌ヨ杩欎簺椤圭洰涓嬬殑鍏朵粬妫�楠岄」鐩槸鍚﹀叏閮ㄦ楠� - List<InsProduct> insProductList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, product.getInsSampleId()) - .like(InsProduct::getInspectionItemSubclass, "娓╁害")); - List<Integer> collect = insProductList.stream().filter(insProduct -> insProduct.getInsResult() != null).map(InsProduct::getInsResult).collect(Collectors.toList()); - List<Integer> tt = new ArrayList<>(); - tt.add(1); - if (collect.contains(0)) { - product.setLastValue("涓嶅悎鏍�"); - product.setInsResult(0); - } else if (collect.size() == insProductList.size() && collect.stream().distinct().collect(Collectors.toList()).containsAll(tt)) { - product.setLastValue("鍚堟牸"); - product.setInsResult(1); - } - insProductMapper.updateById(product); - } else { - count++; - str += "<br/>" + count + "锛�" + product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>"; - } + count++; + str += "<br/>" + count + "锛�" + product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>"; } if (ObjectUtils.isNotEmpty(str)) { throw new ErrorException("<strong>瀛樺湪寰呮楠岀殑椤圭洰锛�</strong><br/>" + str); } } - 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)); + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, submitPlanDto.getSampleId()) + .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory()) + .set(InsOrderState::getInsState, 3) + .set(InsOrderState::getVerifyUser, submitPlanDto.getVerifyUser())); + InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId()); + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + //LIMS绯荤粺娑堟伅鎺ㄩ�� InformationNotification info = new InformationNotification(); info.setCreateUser(insProductMapper.selectUserById(userId).get("name")); info.setMessageType("2"); info.setTheme("澶嶆牳閫氱煡"); info.setContent("鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅"); info.setSenderId(userId); - info.setConsigneeId(verifyUser); + info.setConsigneeId(submitPlanDto.getVerifyUser()); info.setViewStatus(false); info.setJumpPath("b1-inspect-order-plan"); informationNotificationService.addInformationNotification(info); + // todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss + HashMap<String, Object> map = new HashMap<>(); + String account = userMapper.selectById(submitPlanDto.getVerifyUser()).getAccount(); + map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧) + map.put("toparty", "");//鎺ユ敹閮ㄩ棬id + map.put("totag", "");//娑堟伅鏍囩id + map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰 + map.put("agentid", 1000517);//搴旂敤id + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode() + ",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>"); + map.put("text", hashMap);//娑堟伅鍐呭 + map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚� + map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚� + map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚� + qywxApi.send(map); //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� InsSampleUser insSampleUser = new InsSampleUser(); - insSampleUser.setUserId(verifyUser); - insSampleUser.setInsSampleId(orderId); + insSampleUser.setUserId(submitPlanDto.getVerifyUser()); + insSampleUser.setInsSampleId(submitPlanDto.getSampleId()); insSampleUser.setState(1); - insSampleUser.setSonLaboratory(laboratory); + insSampleUser.setSonLaboratory(submitPlanDto.getLaboratory()); insSampleUserMapper.insert(insSampleUser); - /*鏍¢獙涓�涓媟esult琛�*/ - CompletableFuture.supplyAsync(() -> { - List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); - for (Integer ip : ips) { - List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() - .eq(InsProductResult::getInsProductId, ip)); - if (insProductResults.size() > 1) { - for (int i = 1; i < insProductResults.size(); i++) { - insProductResultMapper.deleteById(insProductResults.get(i)); + /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/ + if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) { + //wordUtils.generateWord(submitPlanDto.getTerm(), orderState); + //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮� + try { + wordUtils.generateWord(submitPlanDto.getTerm(), orderState); + } catch (Exception e) { + throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!"); + } + } + /*// 鍒犻櫎鏁伴噰閲囬泦娆℃暟 + String key = "frequency" + ":" + submitPlanDto.getEntrustCode() + ":*"; + RedisUtil.delsLike(key);*/ + + /*鐢熸垚浜ч噺宸ユ椂*/ + //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 + //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 + 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); + } + for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours : submitPlanDto.getAuxiliaryOutputWorkingHoursList()) { + InsProduct insProduct = insProductMapper.selectById(auxiliaryOutputWorkingHours.getInsProductId()); + if (isWithinRange) { + //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 + auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� + auxiliaryOutputWorkingHours.setWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//闈炲姞鐝伐鏃� + auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� + } else { + //鍔犵彮 + auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 + auxiliaryOutputWorkingHours.setOvertimeWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//鍔犵彮宸ユ椂 + auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 } + 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);//妫�娴嬩汉 + auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); } } - return null; - }); - // 鍒犻櫎鏁伴噰閲囬泦娆℃暟 - String key = "frequency" + ":" + entrustCode + ":*"; - RedisUtil.delsLike(key); - return 1; - } - - public int pxToCm(int px) { - return px / 9; - } - - // 鑾峰彇涓や釜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; + return 1; } public static String getWeek(String dayStr) { -- Gitblit v1.9.3