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