From fbd51243ec9bd4c7de39ef1c08992db227eec3ef Mon Sep 17 00:00:00 2001 From: jiangxiaoming <7548901@qq.com> Date: Sun, 29 Sep 2024 17:04:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98=E5=85=A5=E8=B4=A6=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=88=A4=E6=96=AD=EF=BC=8C=E6=89=B9=E9=87=8F=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=9B=9E=E5=8D=95agg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/EntryCommandServiceImpl.java | 22 ++++++++++++---- .../aggregate/income/IncomeRepository.java | 2 ++ .../repository/IncomeRepositoryImpl.java | 25 +++++++++++++++++++ .../seasky/ledgerincome/utils/FileUtil.java | 8 +++--- 4 files changed, 48 insertions(+), 9 deletions(-) diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/EntryCommandServiceImpl.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/EntryCommandServiceImpl.java index d5e25e82..20b0133a 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/EntryCommandServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/application/command/EntryCommandServiceImpl.java @@ -74,17 +74,29 @@ public class EntryCommandServiceImpl implements EntryCommandService { UserInfoUtil userInfoUtil; @Autowired IncomeQueryService incomeQueryService; + //鏈垎閰嶃€佸緟璁ら銆侀渶瑕佽ˉ鍏呬絾鏈彁浜よˉ鍏呬俊鎭殑杩欎笁閮ㄥ垎鍥炲崟鍙互鏆傚瓨鍏ヨ处 @Transactional @Override public void storageTemp(Long incomeId) { // 1鏌ヨ鍥炲崟 IncomeAggregate incomeAggregate = incomeRepository.findById(incomeId); - if(incomeAggregate.getReceiptBillVo().getIncomeTypeName().equals("宸茬嚎涓嬪叆璐�")){ - throw ExceptionUtil.getException(null,"宸茬嚎涓嬪叆璐︿笉鍏佽鏆傚瓨鍏ヨ处:"+incomeAggregate.getIncomeId()); + if(incomeAggregate.getReceiptBillVo().getIncomeTypeName().equals("绾夸笅鍏ヨ处")){ + throw ExceptionUtil.getException(null,"绾夸笅鍏ヨ处涓嶅厑璁告殏瀛樺叆璐�:"+incomeAggregate.getIncomeId()); } - if(incomeAggregate.getNeedInQuire()!=null && !incomeAggregate.getNeedInQuire()){ - throw ExceptionUtil.getException(null,"闈炲緟璁ら鐨勫洖鍗曚笉鍏佽鏆傚瓨鍏ヨ处:"+incomeAggregate.getIncomeId()); + //寰呰ˉ鍏� + String supplementState = incomeAggregate.getReceiptBillVo().getSupplementState(); + //寰呰棰� + Boolean needInQuire = !incomeAggregate.getNeedInQuire(); + //鏈垎閰� + String allocationName = incomeAggregate.getReceiptBillVo().getAllocationName(); + + if(!((StringUtils.isNotEmpty(supplementState)&&"寰呰ˉ鍏�".equals(supplementState)) + || (needInQuire!=null && needInQuire) + || StringUtils.isEmpty(allocationName)) + ){ + throw ExceptionUtil.getException(null,"闈瀃寰呰ˉ鍏呮垨寰呰棰嗘垨鏈垎閰峕涓嶅厑璁告殏瀛樺叆璐�:"+incomeAggregate.getIncomeId()); } + // 2 鍏ヨ处瑙勫垯鐢熸垚鍑瘉 VoucherAggregate voucherAggregate = voucherUtil.generateVoucher(incomeAggregate, "鍚�", VoucherStateApplyEnum.鐢宠涓�.getValue(),"鏆傚瓨鍏ヨ处"); Long voucherId = voucherRepository.save(voucherAggregate); @@ -512,7 +524,7 @@ public class EntryCommandServiceImpl implements EntryCommandService { //1 鏌ヨ鎵€鏈夊緟璁ら鐨勫洖鍗� List<VchDetailEntity> detailListAll = new ArrayList<>(); Long batchId = IdUtil.getSnowflakeNextId(); - List<IncomeAggregate> incomeAggregates = new ArrayList(); + List<IncomeAggregate> incomeAggregates = incomeRepository.findByIds(longList); Map<Long,IncomeAggregate> map = new HashMap<>(); for(IncomeAggregate incomeAggregate:incomeAggregates) { // 2 鍏ヨ处瑙勫垯鐢熸垚鍑瘉 diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/domain/aggregate/income/IncomeRepository.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/domain/aggregate/income/IncomeRepository.java index 355d682a..8491fe66 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/domain/aggregate/income/IncomeRepository.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/domain/aggregate/income/IncomeRepository.java @@ -12,4 +12,6 @@ public interface IncomeRepository extends BaseRepository<IncomeAggregate> { Boolean checkIncomeAccount(String incomeAccount); IncomeAggregate findByOutOrderNo(Long incomeId); + + List<IncomeAggregate> findByIds(Long[] longList); } diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/infrastructure/repository/IncomeRepositoryImpl.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/infrastructure/repository/IncomeRepositoryImpl.java index 5c0822da..d80ee558 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/infrastructure/repository/IncomeRepositoryImpl.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/infrastructure/repository/IncomeRepositoryImpl.java @@ -16,6 +16,8 @@ import org.springframework.stereotype.Repository; import javax.annotation.Resource; import javax.validation.Valid; import javax.validation.constraints.NotNull; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -115,4 +117,27 @@ public class IncomeRepositoryImpl implements IncomeRepository { IncomeAggregate incomeAggregate = IncomeConver.toIncomeAggregate(incomePo); return incomeAggregate; } + + @Override + public List<IncomeAggregate> findByIds(Long[] longList) { + List<IncomeAggregate> aggs = new ArrayList<>(); + List<Long> list = Arrays.asList(longList); + List<IncomePo> incomePos = incomeService.list(list); + for (IncomePo incomePo: incomePos) { + IncomeAggregate incomeAggregate = IncomeConver.toIncomeAggregate(incomePo); + //鍒ゆ柇鏄惁琛ュ紑鍙戠エ + QueryWrapper<IncomeInvoicePo> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("income_id",incomePo.getId()); + queryWrapper.eq("available",Available.YES); + queryWrapper.last("order by create_date desc limit 1"); + IncomeInvoicePo invoicePo = incomeInvoiceMapper.selectOne(queryWrapper); + if(invoicePo!=null && invoicePo.getInvoiceType().equals(InvoiceTypeEnum.琛ュ紑绁�.getValue())){ + incomeAggregate.setIsSupplementary(true); + }else{ + incomeAggregate.setIsSupplementary(false); + } + aggs.add(incomeAggregate); + } + return aggs; + } } diff --git a/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/FileUtil.java b/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/FileUtil.java index d9c65d01..3b83e3d9 100644 --- a/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/FileUtil.java +++ b/ServiceSite/src/main/java/com/seasky/ledgerincome/utils/FileUtil.java @@ -208,12 +208,12 @@ public class FileUtil { fileCommandService.SaveFileInfo(incomeId, null, billNo, incomeId.toString(), FileTypeEmun.鍏ヨ处鐢宠鍗�.getCode(), convertFileToBytes(tempFile), type, tempFile.getName(), userName); } - if (!tempFile.delete()) { + /*if (!tempFile.delete()) { throw new RuntimeException("鍒犻櫎鏂囦欢鍑洪敊"); - } - /* if (1 == 1) { - throw new RuntimeException("娴嬭瘯"); }*/ + if (1 == 1) { + throw new RuntimeException("娴嬭瘯"); + } } private static void addTitle(Document document,String smallTile,Long entryBillFlowId,PdfWriter writer){ try{ -- GitLab