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