From 458e903be7b0040606079288691fabfc0f4967bc Mon Sep 17 00:00:00 2001 From: Calvin <2440603509@qq.com> Date: 星期三, 31 七月 2024 09:53:30 +0800 Subject: [PATCH] 费用到处统计根据委托单位区分sheet --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 72 +++++++++++++++++++++++------------ 1 files changed, 47 insertions(+), 25 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java index 1b61451..c087572 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java @@ -29,18 +29,13 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Function; -import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -102,7 +97,8 @@ } } //鍒ゆ柇鏄惁鏄叏閮ㄦ潈闄� - Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrder")); + Power power = + powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrder")); if (ObjectUtils.isEmpty(power)) { if (map1.get("look") == 1) { //涓汉 @@ -116,21 +112,24 @@ } } } - map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), laboratory)); + map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), + laboratory)); return map; } @Override @Transactional(rollbackFor = Exception.class) - public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) { + public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId, String sonLaboratory) { InsOrder insOrder = new InsOrder(); insOrder.setId(orderId); insOrder.setAppointed(LocalDate.parse(appointed)); insOrder.setSendTime(LocalDateTime.now()); insOrderMapper.updateById(insOrder); - List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); + 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::getState, 1).isNull(InsProduct::getInsFibersId).isNull(InsProduct::getInsFiberId).select(InsProduct::getSonLaboratory).groupBy(InsProduct::getSonLaboratory)); + List<InsProduct> insProducts = + insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getState, 1).isNull(InsProduct::getInsFibersId).isNull(InsProduct::getInsFiberId).select(InsProduct::getSonLaboratory).groupBy(InsProduct::getSonLaboratory)); for (InsProduct insProduct : insProducts) { InsOrderState insOrderState = new InsOrderState(); insOrderState.setInsOrderId(orderId); @@ -192,7 +191,8 @@ fiberDto.setInsFibersId(fibersDto.getId()); insFiberMapper.insert(fiberDto); addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2, true); - addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false); + addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, + false); } //addInsProductMethod(a.getId(), a.getInsProduct(), fibersDto.getId(), 1); addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1, false); @@ -260,12 +260,14 @@ } }); for (List<Integer> i : pairing) { - SampleProductDto sample = JSON.parseObject(JSON.toJSONString(list.get(i.get(0) - 1)), SampleProductDto.class); + SampleProductDto sample = JSON.parseObject(JSON.toJSONString(list.get(i.get(0) - 1)), + SampleProductDto.class); sample.setSampleCode(list.get(i.get(0) - 1).getSampleCode() + "/" + list.get(i.get(1) - 1).getSampleCode()); sample.setId(null); insSampleMapper.insert(sample); try { - List<InsProduct> insProducts = sample.getInsProduct().stream().filter(a -> Objects.equals(a.getInspectionItem(), "鍏夌氦鎺ュご鎹熻��")).collect(Collectors.toList()); + List<InsProduct> insProducts = + sample.getInsProduct().stream().filter(a -> Objects.equals(a.getInspectionItem(), "鍏夌氦鎺ュご鎹熻��")).collect(Collectors.toList()); for (InsProduct insProduct : insProducts) { insProduct.setId(null); insProduct.setInsSampleId(sample.getId()); @@ -277,7 +279,8 @@ return insOrder.getId(); } - private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type, Boolean is) { + private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type, + Boolean is) { InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(sampleId).getInsOrderId()); for (InsProduct product : productList) { if (product.getState() == 1 && !product.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) { @@ -441,7 +444,8 @@ code = ""; } String code2 = customMapper.selectById(insOrder.getCompanyId()).getCode2(); - insOrder.setEntrustCode(giveCode.giveCode2("JCZX/" + code + "-" + code2 + "-", insOrder.getCompanyId(), insOrder.getLaboratory(), "ins_order", "", "yyMM")); + insOrder.setEntrustCode(giveCode.giveCode2("JCZX/" + code + "-" + code2 + "-", insOrder.getCompanyId(), + insOrder.getLaboratory(), "ins_order", "", "yyMM")); } return insOrderMapper.updateById(insOrder); } @@ -460,10 +464,12 @@ } @Override - public Map<String, Object> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, SampleProductDto2 sampleProductDto) { + public Map<String, Object> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, + SampleProductDto2 sampleProductDto) { Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(SampleProductDto2.class)); - map.put("body", insOrderMapper.selectSampleAndProductByOrderId(page, QueryWrappers.queryWrappers(sampleProductDto))); + map.put("body", insOrderMapper.selectSampleAndProductByOrderId(page, + QueryWrappers.queryWrappers(sampleProductDto))); return map; } @@ -476,7 +482,9 @@ map.put("head", PrintChina.printChina(CostStatisticsDto.class)); Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("costStatistics"); if (map1.get("look") == 1) costStatisticsDto.setCreateUser(map1.get("userId")); - IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")); + IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, + QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", + split[1] + " 23:59:59")); List<CostStatisticsDto> collect = dtoIPage.getRecords().stream().map(dto -> { Set<String> uniqueTags = new HashSet<>(); if (dto.getInspectionItem().contains(",")) { @@ -500,7 +508,9 @@ String dates = costStatisticsDto.getDates(); String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); costStatisticsDto.setDates(null); - List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")); + List<CostStatisticsDto> costStatisticsDtos = + insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", + split[0]).le("create_time", split[1] + " 23:59:59")); double totalPrice = costStatisticsDtos.stream() .filter(dto -> dto.getPrice() != null) // 杩囨护鎺変环鏍间负 null 鐨勫璞� .mapToDouble(value -> value.getPrice().doubleValue() * value.getNum()) @@ -511,7 +521,8 @@ @Override public Map<String, Object> selectSampleDefects(Page page, String inspectionItems, String orderNumber) { - List<SampleDefectsFatherVo> sampleDefectsFatherVos = insOrderMapper.selectSampleDefects(page, inspectionItems, orderNumber); + List<SampleDefectsFatherVo> sampleDefectsFatherVos = insOrderMapper.selectSampleDefects(page, inspectionItems + , orderNumber); Map<String, Object> map = new HashMap<>(); map.put("records", sampleDefectsFatherVos); Long aLong = insOrderMapper.getCount(inspectionItems, orderNumber); @@ -546,12 +557,14 @@ } @Override - public void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response) throws IOException { + public void export(CostStatisticsDto costStatisticsDto, HttpServletResponse response) throws IOException { //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹� String dates = costStatisticsDto.getDates(); String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); costStatisticsDto.setDates(null); - List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")); + List<CostStatisticsDto> costStatisticsDtos = + insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", + split[0]).le("create_time", split[1] + " 23:59:59")); costStatisticsDtos = costStatisticsDtos.stream().map(dto -> { Set<String> uniqueTags = new HashSet<>(); if (dto.getInspectionItem().contains(",")) { @@ -570,12 +583,21 @@ // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 String fileName = URLEncoder.encode("鏍峰搧璐圭敤缁熻瀵煎嚭", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + Map<String, List<CostStatisticsDto>> groupByCompany = + costStatisticsDtos.stream().filter(e -> StrUtil.isNotEmpty(e.getCompany())) + .collect(Collectors.groupingBy(CostStatisticsDto::getCompany)); try { // 鏂板缓ExcelWriter - ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + ExcelWriter excelWriter = + EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); - WriteSheet mainSheet = EasyExcel.writerSheet( "鏍峰搧璐圭敤缁熻瀵煎嚭").head(CostStatisticsDto.class).build(); - excelWriter.write(costStatisticsDtos, mainSheet); + for (Map.Entry<String, List<CostStatisticsDto>> companyDataEntry : groupByCompany.entrySet()) { + String sheetName = companyDataEntry.getKey(); + List<CostStatisticsDto> dataList = companyDataEntry.getValue(); + WriteSheet mainSheet = EasyExcel.writerSheet(sheetName).head(CostStatisticsDto.class).build(); + excelWriter.write(dataList, mainSheet); + } + // 鍏抽棴娴� excelWriter.finish(); -- Gitblit v1.9.3