Bladeren bron

Merge branch 'master' of http://114.55.67.98:8070/Natural_p1/zjugis_OA

songxy 1 jaar geleden
bovenliggende
commit
6753563e52

+ 14 - 9
zjugis-business/src/main/java/com/zjugis/business/job/ProjectAmountJob.java

@@ -91,15 +91,7 @@ public class ProjectAmountJob {
                 Map<String, ProjectCostResponse> costMap = projectCostService.calculateCostMap(costDto);
                 LocalDateTime now = LocalDateTime.now();
                 for (ProjectAmount entity : batch) {
-                    ProjectCostResponse projectCostResponse = costMap.get(entity.getProjectId());
-                    if(projectCostResponse != null){
-                        entity.setProjectCost(projectCostResponse.getCost());
-                        entity.setReimbursementCost(projectCostResponse.getReimbursementCost());
-                        entity.setTravelCost(projectCostResponse.getTravelCost());
-                        entity.setSubcontractCost(projectCostResponse.getSubcontractCost());
-                        entity.setOutsourceCost(projectCostResponse.getOutsourceCost());
-                        entity.setPaymentCost(projectCostResponse.getPaymentCost());
-                    }
+                    fillCost(entity, costMap);
                     entity.setUpdateTime(now);
                 }
                 if(insert){
@@ -109,6 +101,7 @@ public class ProjectAmountJob {
                             ProjectAmount projectAmount = new ProjectAmount();
                             projectAmount.setProjectId(id);
                             projectAmount.setUpdateTime(now);
+                            fillCost(projectAmount, costMap);
                             batch.add(projectAmount);
                         }
                     }
@@ -125,5 +118,17 @@ public class ProjectAmountJob {
                 invokeAll(left,right);
             }
         }
+
+        private void fillCost(ProjectAmount entity, Map<String, ProjectCostResponse> costMap) {
+            ProjectCostResponse projectCostResponse = costMap.get(entity.getProjectId());
+            if(projectCostResponse != null){
+                entity.setProjectCost(projectCostResponse.getCost());
+                entity.setReimbursementCost(projectCostResponse.getReimbursementCost());
+                entity.setTravelCost(projectCostResponse.getTravelCost());
+                entity.setSubcontractCost(projectCostResponse.getSubcontractCost());
+                entity.setOutsourceCost(projectCostResponse.getOutsourceCost());
+                entity.setPaymentCost(projectCostResponse.getPaymentCost());
+            }
+        }
     }
 }

+ 25 - 21
zjugis-business/src/main/java/com/zjugis/business/service/impl/ProjectServiceImpl.java

@@ -369,8 +369,9 @@ public class ProjectServiceImpl implements ProjectService {
         List<String> ids = Collections.singletonList(projectId);
         List<ProjectAmount> res = contractService.selectAmountList(ids);
         List<ContractInvoiceRelation> relations = contractInvoiceRelationService.selectAmountByProjectIds(ids);
+        ProjectAmount projectAmount = null;
         if(!res.isEmpty()){
-            ProjectAmount projectAmount = res.get(0);
+            projectAmount = res.get(0);
             BigDecimal invoiceAmount = BigDecimal.ZERO;
             BigDecimal returnAmount = BigDecimal.ZERO;
             if (relations != null && !relations.isEmpty()) {
@@ -383,26 +384,29 @@ public class ProjectServiceImpl implements ProjectService {
             projectAmount.setReturnAmount(returnAmount);
             projectAmount.setReceivableAmount(projectAmount.getInvoiceAmount().subtract(projectAmount.getReturnAmount()));
             projectAmount.setContractBalance(projectAmount.getVirtualAmount().subtract(projectAmount.getInvoiceAmount()));
-            ProjectCostDto costDto = new ProjectCostDto();
-            costDto.setProjectIds(ids);
-            Map<String, ProjectCostResponse> costMap = projectCostService.calculateCostMap(costDto);
-            LocalDateTime now = LocalDateTime.now();
-            ProjectCostResponse projectCostResponse = costMap.get(projectAmount.getProjectId());
-            if(projectCostResponse != null){
-                projectAmount.setProjectCost(projectCostResponse.getCost());
-                projectAmount.setReimbursementCost(projectCostResponse.getReimbursementCost());
-                projectAmount.setTravelCost(projectCostResponse.getTravelCost());
-                projectAmount.setSubcontractCost(projectCostResponse.getSubcontractCost());
-                projectAmount.setOutsourceCost(projectCostResponse.getOutsourceCost());
-                projectAmount.setPaymentCost(projectCostResponse.getPaymentCost());
-            }
-            projectAmount.setUpdateTime(now);
-            ProjectAmount dbEntity = projectAmountService.selectById(projectId);
-            if(dbEntity == null){
-                projectAmountService.insert(projectAmount);
-            } else {
-                projectAmountService.update(projectAmount);
-            }
+        } else {
+            projectAmount = new ProjectAmount();
+            projectAmount.setProjectId(projectId);
+        }
+        ProjectCostDto costDto = new ProjectCostDto();
+        costDto.setProjectIds(ids);
+        Map<String, ProjectCostResponse> costMap = projectCostService.calculateCostMap(costDto);
+        LocalDateTime now = LocalDateTime.now();
+        ProjectCostResponse projectCostResponse = costMap.get(projectAmount.getProjectId());
+        if(projectCostResponse != null){
+            projectAmount.setProjectCost(projectCostResponse.getCost());
+            projectAmount.setReimbursementCost(projectCostResponse.getReimbursementCost());
+            projectAmount.setTravelCost(projectCostResponse.getTravelCost());
+            projectAmount.setSubcontractCost(projectCostResponse.getSubcontractCost());
+            projectAmount.setOutsourceCost(projectCostResponse.getOutsourceCost());
+            projectAmount.setPaymentCost(projectCostResponse.getPaymentCost());
+        }
+        projectAmount.setUpdateTime(now);
+        ProjectAmount dbEntity = projectAmountService.selectById(projectId);
+        if(dbEntity == null){
+            projectAmountService.insert(projectAmount);
+        } else {
+            projectAmountService.update(projectAmount);
         }
 
     }