|
@@ -84,12 +84,39 @@ public class BizReturnReceiptController extends BaseController
|
|
|
@PreAuthorize("@ss.hasPermi('business:returnReceipt:export')")
|
|
|
@Log(title = "收回单主带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子", businessType = BusinessType.EXPORT)
|
|
|
@PostMapping("/export")
|
|
|
- public void export(HttpServletResponse response, BizReturnReceipt bizOutsourcedOrder) throws NoSuchFieldException, IllegalAccessException
|
|
|
- {
|
|
|
- setTenantId(bizOutsourcedOrder);
|
|
|
- List<BizReturnReceipt> list = bizReturnReceiptService.getList(bizOutsourcedOrder);
|
|
|
- ExcelUtil<BizReturnReceipt> util = new ExcelUtil<>(BizReturnReceipt.class);
|
|
|
- util.exportExcel(response, list, "收回单主带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子数据");
|
|
|
+ public void export(HttpServletResponse response, BizReturnReceipt bizReturnReceipt) throws NoSuchFieldException, IllegalAccessException, IOException {
|
|
|
+ bizReturnReceipt = bizReturnReceiptService.getById(bizReturnReceipt);
|
|
|
+ BizSupplier supplier = bizSupplierService.query().eq("id", bizReturnReceipt.getSupplierId()).list().get(0);
|
|
|
+ bizReturnReceipt.setSupplierCode(supplier.getCode());
|
|
|
+ List<BizReturnReceiptDetail> returnReceiptDetailList = bizReturnReceiptDetailService.query().eq("master_id",bizReturnReceipt.getId()).orderByAsc("process_step_number").list();
|
|
|
+ //按照批次分组,一个批次合并成一条
|
|
|
+ List<String> lotCodeList = returnReceiptDetailList.stream()
|
|
|
+ .map(BizReturnReceiptDetail::getLotCode)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<String, List<BizReturnReceiptDetail>> groupedByLotCode = new LinkedHashMap<>();
|
|
|
+ for (String lotCode : lotCodeList) {
|
|
|
+ groupedByLotCode.put(lotCode, returnReceiptDetailList.stream()
|
|
|
+ .filter(record -> record.getLotCode().equals(lotCode))
|
|
|
+ .sorted(Comparator.comparing(BizReturnReceiptDetail::getProcessStepNumber))
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ List<BizReturnReceiptDetail> details = new ArrayList<>();
|
|
|
+ for (Map.Entry<String, List<BizReturnReceiptDetail>> entry : groupedByLotCode.entrySet()) {
|
|
|
+ BizReturnReceiptDetail info = new BizReturnReceiptDetail();
|
|
|
+ String lotCode = entry.getKey();
|
|
|
+ List<BizReturnReceiptDetail> detailList = entry.getValue();
|
|
|
+ info.setProductDescription(detailList.get(0).getProductDescription());
|
|
|
+ info.setOutsourceDetailId(detailList.get(0).getOutsourceDetailId());
|
|
|
+ info.setLotCode(lotCode);
|
|
|
+ info.setReceiptNum(detailList.get(detailList.size() -1).getReceiptNum());
|
|
|
+ info.setNewCarrier(detailList.get(0).getNewCarrier());
|
|
|
+ info.setNewCarrierCount(detailList.get(0).getNewCarrierCount());
|
|
|
+ info.setRemark(detailList.get(0).getRemark());
|
|
|
+ details.add(info);
|
|
|
+ }
|
|
|
+ bizReturnReceipt.setDetails(details);
|
|
|
+ bizReturnReceiptService.exportTemplateProvinceAreaData(response, bizReturnReceipt);
|
|
|
}
|
|
|
/**
|
|
|
* 新增外协单主
|
|
@@ -130,7 +157,15 @@ public class BizReturnReceiptController extends BaseController
|
|
|
//向收回单主表存
|
|
|
bizReturnReceiptService.save(bizReturnReceipt);
|
|
|
//向收回单明细表存
|
|
|
- bizReturnReceipt.getDetails().stream()
|
|
|
+// bizReturnReceipt.getDetails().stream()
|
|
|
+// .forEach(bizReturnReceiptDetail -> {
|
|
|
+// bizReturnReceiptDetail.setMasterId(bizReturnReceipt.getId());
|
|
|
+// bizReturnReceiptDetail.setFormCode(bizReturnReceipt.getFormCode());
|
|
|
+// bizReturnReceiptDetail.setSupplierId(bizReturnReceipt.getSupplierId());
|
|
|
+// bizReturnReceiptDetail.setSupplierName(bizReturnReceipt.getSupplierName());
|
|
|
+// bizReturnReceiptDetail.setFormDate(bizReturnReceipt.getFormDate());
|
|
|
+// });
|
|
|
+ bizReturnReceipt.getDetailInfo().stream()
|
|
|
.forEach(bizReturnReceiptDetail -> {
|
|
|
bizReturnReceiptDetail.setMasterId(bizReturnReceipt.getId());
|
|
|
bizReturnReceiptDetail.setFormCode(bizReturnReceipt.getFormCode());
|
|
@@ -138,7 +173,8 @@ public class BizReturnReceiptController extends BaseController
|
|
|
bizReturnReceiptDetail.setSupplierName(bizReturnReceipt.getSupplierName());
|
|
|
bizReturnReceiptDetail.setFormDate(bizReturnReceipt.getFormDate());
|
|
|
});
|
|
|
- return success(bizReturnReceiptDetailService.saveBatch(bizReturnReceipt.getDetails()));
|
|
|
+// return success(bizReturnReceiptDetailService.saveBatch(bizReturnReceipt.getDetails()));
|
|
|
+ return success(bizReturnReceiptDetailService.saveBatch(bizReturnReceipt.getDetailInfo()));
|
|
|
}
|
|
|
/**
|
|
|
* 修改外协单主
|
|
@@ -153,7 +189,7 @@ public class BizReturnReceiptController extends BaseController
|
|
|
bizReturnReceiptService.updateById(bizReturnReceipt);
|
|
|
//向收回单明细表存
|
|
|
List<BizReturnReceiptDetail> oldList = bizReturnReceiptDetailService.query().eq("master_id",bizReturnReceipt.getId()).list();
|
|
|
- bizReturnReceipt.getDetails().stream()
|
|
|
+ bizReturnReceipt.getDetailInfo().stream()
|
|
|
.forEach(bizReturnReceiptDetail -> {
|
|
|
bizReturnReceiptDetail.setMasterId(bizReturnReceipt.getId());
|
|
|
bizReturnReceiptDetail.setFormCode(bizReturnReceipt.getFormCode());
|
|
@@ -161,7 +197,16 @@ public class BizReturnReceiptController extends BaseController
|
|
|
bizReturnReceiptDetail.setSupplierName(bizReturnReceipt.getSupplierName());
|
|
|
bizReturnReceiptDetail.setFormDate(bizReturnReceipt.getFormDate());
|
|
|
});
|
|
|
- saveOrUpdateBatch(bizReturnReceiptDetailService,bizReturnReceipt.getDetails(),oldList);
|
|
|
+ saveOrUpdateBatch(bizReturnReceiptDetailService,bizReturnReceipt.getDetailInfo(),oldList);
|
|
|
+// bizReturnReceipt.getDetails().stream()
|
|
|
+// .forEach(bizReturnReceiptDetail -> {
|
|
|
+// bizReturnReceiptDetail.setMasterId(bizReturnReceipt.getId());
|
|
|
+// bizReturnReceiptDetail.setFormCode(bizReturnReceipt.getFormCode());
|
|
|
+// bizReturnReceiptDetail.setSupplierId(bizReturnReceipt.getSupplierId());
|
|
|
+// bizReturnReceiptDetail.setSupplierName(bizReturnReceipt.getSupplierName());
|
|
|
+// bizReturnReceiptDetail.setFormDate(bizReturnReceipt.getFormDate());
|
|
|
+// });
|
|
|
+// saveOrUpdateBatch(bizReturnReceiptDetailService,bizReturnReceipt.getDetails(),oldList);
|
|
|
return success();
|
|
|
}
|
|
|
/**
|
|
@@ -188,21 +233,53 @@ public class BizReturnReceiptController extends BaseController
|
|
|
.in("detail_id", detailIds)
|
|
|
.orderByAsc(Arrays.asList("detail_id", "process_step_number"))
|
|
|
.list();
|
|
|
-
|
|
|
- // 遍历明细,将对应的工序,与订单明细进行匹配
|
|
|
- returnReceiptDetails.forEach(item -> {
|
|
|
- // 根据明细的id,获取到该明细对应的收回工序,并将得到的工序,组成中文逗号分割的字符串
|
|
|
- String processNames = detailProcesses.stream()
|
|
|
- .filter(dp -> dp.getDetailId().equals(item.getOutsourceDetailId()))
|
|
|
+ //按照批次分组,一个批次合并成一条
|
|
|
+ List<String> lotCodeList = returnReceiptDetails.stream()
|
|
|
+ .map(BizReturnReceiptDetail::getLotCode)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<String, List<BizReturnReceiptDetail>> groupedByLotCode = new LinkedHashMap<>();
|
|
|
+ for (String lotCode : lotCodeList) {
|
|
|
+ groupedByLotCode.put(lotCode, returnReceiptDetails.stream()
|
|
|
+ .filter(record -> record.getLotCode().equals(lotCode))
|
|
|
+ .sorted(Comparator.comparing(BizReturnReceiptDetail::getProcessStepNumber))
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ List<BizReturnReceiptDetail> details = new ArrayList<>();
|
|
|
+ for (Map.Entry<String, List<BizReturnReceiptDetail>> entry : groupedByLotCode.entrySet()) {
|
|
|
+ BizReturnReceiptDetail info = new BizReturnReceiptDetail();
|
|
|
+ String lotCode = entry.getKey();
|
|
|
+ List<BizReturnReceiptDetail> detailList = entry.getValue();
|
|
|
+ info.setProductDescription(detailList.get(0).getProductDescription());
|
|
|
+ info.setOutsourceDetailId(detailList.get(0).getOutsourceDetailId());
|
|
|
+ info.setLotCode(lotCode);
|
|
|
+ info.setProductNum(detailList.get(0).getProductNum());
|
|
|
+ info.setReceiptNum(detailList.get(detailList.size() -1).getReceiptNum());
|
|
|
+ info.setNewCarrier(detailList.get(0).getNewCarrier());
|
|
|
+ info.setRemark(detailList.get(0).getRemark());
|
|
|
+ info.setProcessAlias(detailProcesses.stream()
|
|
|
+ .filter(dp -> dp.getDetailId().equals(detailList.get(0).getOutsourceDetailId()))
|
|
|
.sorted(Comparator.comparing((BizOutsourcedOrderDetailProcess::getProcessStepNumber)))
|
|
|
.map(BizOutsourcedOrderDetailProcess::getProcessAlias)
|
|
|
- .collect(Collectors.joining(","));
|
|
|
-
|
|
|
- item.setProcessNames(processNames);
|
|
|
- });
|
|
|
+ .collect(Collectors.joining(",")));
|
|
|
+ details.add(info);
|
|
|
+ }
|
|
|
+// // 遍历明细,将对应的工序,与订单明细进行匹配
|
|
|
+// returnReceiptDetails.forEach(item -> {
|
|
|
+// // 根据明细的id,获取到该明细对应的收回工序,并将得到的工序,组成中文逗号分割的字符串
|
|
|
+// String processNames = detailProcesses.stream()
|
|
|
+// .filter(dp -> dp.getDetailId().equals(item.getOutsourceDetailId()))
|
|
|
+// .sorted(Comparator.comparing((BizOutsourcedOrderDetailProcess::getProcessStepNumber)))
|
|
|
+// .map(BizOutsourcedOrderDetailProcess::getProcessAlias)
|
|
|
+// .collect(Collectors.joining(","));
|
|
|
+//
|
|
|
+// item.setProcessNames(processNames);
|
|
|
+// });
|
|
|
|
|
|
// 将收回明细赋值给收回订单
|
|
|
- returnReceipt.setDetails(returnReceiptDetails);
|
|
|
+ returnReceipt.setDetailInfo(returnReceiptDetails);
|
|
|
+ returnReceipt.setDetails(details);
|
|
|
+
|
|
|
|
|
|
return success(returnReceipt);
|
|
|
}
|