From 8c8650dc357a5aae421633d83ab071a62559c646 Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Fri, 22 May 2026 21:55:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E7=BB=93=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OemStatementServiceImpl.java | 165 +++++++++--------- 1 file changed, 85 insertions(+), 80 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java index 70a7ccf80..dcc2a1851 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java @@ -630,12 +630,12 @@ public class OemStatementServiceImpl extends BaseServiceImpl wrapper = Wrappers.lambdaUpdate(); wrapper.set(OemStatementEntity::getTotalPrice, entity.getTotalPrice()) - .set(OemStatementEntity::getUnitPrice, entity.getUnitPrice()) - .set(OemStatementEntity::getQuotation, entity.getQuotation()) - .set(OemStatementEntity::getRosStatus, entity.getRosStatus()) - .set(OemStatementEntity::getMemo, entity.getMemo()) - .set(OemStatementEntity::getUpdateTime, entity.getUpdateTime()) - .eq(OemStatementEntity::getId, entity.getId()); + .set(OemStatementEntity::getUnitPrice, entity.getUnitPrice()) + .set(OemStatementEntity::getQuotation, entity.getQuotation()) + .set(OemStatementEntity::getRosStatus, entity.getRosStatus()) + .set(OemStatementEntity::getMemo, entity.getMemo()) + .set(OemStatementEntity::getUpdateTime, entity.getUpdateTime()) + .eq(OemStatementEntity::getId, entity.getId()); baseMapper.update(null, wrapper); } @@ -1495,9 +1495,11 @@ public class OemStatementServiceImpl extends BaseServiceImpl> listEntry : oemAndStatementMap.entrySet()) { //外协厂商下全部需要结算的结算单 List statementVOList = listEntry.getValue(); + Date minPutStoreTime = statementVOList.stream().map(StatementVO::getPutStoreTime).min(Comparator.naturalOrder()).orElse(null); + Date maxPutStoreTime = statementVOList.stream().map(StatementVO::getPutStoreTime).max(Comparator.naturalOrder()).orElse(null); //2.以外协名称查出的全部报价单 String oemName = listEntry.getKey(); - List priceSheetAllList = getPriceSheetsWithCondition(oemName); + List priceSheetAllList = getPriceSheetsWithCondition(oemName, minPutStoreTime, maxPutStoreTime); if (priceSheetAllList.isEmpty()) { //【结算异常】 statementVOList.forEach(statementVO -> { @@ -1562,12 +1564,15 @@ public class OemStatementServiceImpl extends BaseServiceImpl getPriceSheetsWithCondition(String oemName) { + private List getPriceSheetsWithCondition(String oemName, Date minPutStoreTime, Date maxPutStoreTime) { PriceSheetQuery query = new PriceSheetQuery(); query.setOcName(oemName); - query.setValidflags(Arrays.asList("有效", "无效")); - query.setPapertype("外协定价"); - query.setPricetype("工序协作"); + if (maxPutStoreTime != null) { + query.setInDateStart(maxPutStoreTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); + } + if (minPutStoreTime != null) { + query.setInDateEnd(minPutStoreTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); + } R> pageR = erpDataOemClient.priceSheetData(query, new Query() {{ setSize(99999); }}); @@ -2307,60 +2312,60 @@ public class OemStatementServiceImpl extends BaseServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(OemStatementEntity::getRosStatus, OemStatementEntity.AWAITING_APPROVAL_SETTLEMENT); - List statements = this.list(queryWrapper); - - if (CollectionUtils.isEmpty(statements)) { - return R.success("没有需要提交审批的待审核数据"); - } - - // 计算汇总数据 - int totalCount = statements.size(); - BigDecimal totalArea = statements.stream() - .map(s -> s.getTotalArea() != null ? s.getTotalArea() : BigDecimal.ZERO) - .reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal totalAmount = statements.stream() - .map(s -> s.getTotalPrice() != null ? s.getTotalPrice() : BigDecimal.ZERO) - .reduce(BigDecimal.ZERO, BigDecimal::add); + // 【待审核】数据 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(OemStatementEntity::getRosStatus, OemStatementEntity.AWAITING_APPROVAL_SETTLEMENT); + List statements = this.list(queryWrapper); + if (CollectionUtils.isEmpty(statements)) { + return R.success("没有需要提交审批的待审核数据"); + } - // 审批主表记录 - OemSettlementApprovalEntity approval = new OemSettlementApprovalEntity(); - approval.setApprovalNo(generateApprovalNo()); - approval.setTotalCount(totalCount); - approval.setTotalArea(totalArea); - approval.setTotalAmount(totalAmount); - approval.setSettlementMemo(settlementMemo); // 结算说明 - approval.setApprovalStatus(OemSettlementApprovalEntity.ApprovalStatusEnum.PENDING.getCode()); // 1-待审批 - approval.setSubmitTime(new Date()); - approval.setIsDeleted(0); - - oemSettlementApprovalService.save(approval); - - // 审批明细(按厂家和标准工序代码分组) - generateApprovalDetails(approval.getId(), statements); - - // 状态为【审批中】 - List updateList = new ArrayList<>(); - for (OemStatementEntity statement : statements) { - OemStatementEntity entity = new OemStatementEntity(); - entity.setId(statement.getId()); - entity.setApprovalId(approval.getId()); - entity.setRosStatus(OemStatementEntity.PENDING_APPROVAL_SETTLEMENT); - entity.setUpdateTime(new Date()); - updateList.add(entity); - } + // 计算汇总数据 + int totalCount = statements.size(); + BigDecimal totalArea = statements.stream() + .map(s -> s.getTotalArea() != null ? s.getTotalArea() : BigDecimal.ZERO) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal totalAmount = statements.stream() + .map(s -> s.getTotalPrice() != null ? s.getTotalPrice() : BigDecimal.ZERO) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + + // 审批主表记录 + OemSettlementApprovalEntity approval = new OemSettlementApprovalEntity(); + approval.setApprovalNo(generateApprovalNo()); + approval.setTotalCount(totalCount); + approval.setTotalArea(totalArea); + approval.setTotalAmount(totalAmount); + approval.setSettlementMemo(settlementMemo); // 结算说明 + approval.setApprovalStatus(OemSettlementApprovalEntity.ApprovalStatusEnum.PENDING.getCode()); // 1-待审批 + approval.setSubmitTime(new Date()); + approval.setIsDeleted(0); + + oemSettlementApprovalService.save(approval); + + // 审批明细(按厂家和标准工序代码分组) + generateApprovalDetails(approval.getId(), statements); + + // 状态为【审批中】 + List updateList = new ArrayList<>(); + for (OemStatementEntity statement : statements) { + OemStatementEntity entity = new OemStatementEntity(); + entity.setId(statement.getId()); + entity.setApprovalId(approval.getId()); + entity.setRosStatus(OemStatementEntity.PENDING_APPROVAL_SETTLEMENT); + entity.setUpdateTime(new Date()); + updateList.add(entity); + } - if (!CollectionUtils.isEmpty(updateList)) { - this.updateBatchById(updateList); - } + if (!CollectionUtils.isEmpty(updateList)) { + this.updateBatchById(updateList); + } - // 发送消息通知给“外协结算校对员”角色的用户 - sendNotificationToProofreaders(approval); + // 发送消息通知给“外协结算校对员”角色的用户 + sendNotificationToProofreaders(approval); - return R.success(); + return R.success(); } /** @@ -2480,31 +2485,31 @@ public class OemStatementServiceImpl extends BaseServiceImpl