wangys 6 лет назад
Родитель
Сommit
130da44ad7

+ 6 - 0
efunbox-base/efunbox-base-api/src/main/java/cn/efunbox/manage/base/entity/Manage.java

@@ -42,6 +42,9 @@ public class Manage implements Serializable {
     @Column(name = "company_id")
     private Long companyId;
 
+    @Column(name = "to_project_id")
+    private Long toProjectId;
+
     @Enumerated(EnumType.ORDINAL)
     private ManageTypeEnum type;
 
@@ -94,6 +97,9 @@ public class Manage implements Serializable {
     private Project project;
 
     @Transient
+    private Project toProject;
+
+    @Transient
     private Product product;
 
     @Transient

+ 1 - 1
efunbox-base/efunbox-base-api/src/main/java/cn/efunbox/manage/base/enums/CompanyTypeEnum.java

@@ -2,7 +2,7 @@ package cn.efunbox.manage.base.enums;
 
 public enum CompanyTypeEnum {
 
-    COMPANY("外部"),DEPARTMENT("部门"), PROJECT("项目");
+    COMPANY("外部"),DEPARTMENT("部门");
     String name;
     CompanyTypeEnum(String name) {
         this.name = name;

+ 29 - 17
efunbox-base/efunbox-base-api/src/main/java/cn/efunbox/manage/base/service/impl/ManageServiceImpl.java

@@ -99,30 +99,38 @@ public class ManageServiceImpl implements ManageService {
         List<Long> companyIds = new ArrayList<>();
         List<Long> costTypeIds = new ArrayList<>();
         manages.stream().forEach(m -> {
-            deptIds.add(m.getDeptId());
+            if(Objects.nonNull(m.getDeptId())){
+                deptIds.add(m.getDeptId());
+            }
             if(Objects.nonNull(m.getProjectId())){
                 projectIds.add(m.getProjectId());
             }
             if(Objects.equals(m.getType(), ManageTypeEnum.COST)){
                 switch (m.getCompanyType()){
                     case COMPANY:
-                        companyIds.add(m.getCompanyId());
-                        break;
-                    case PROJECT:
-                        projectIds.add(m.getCompanyId());
+                        if(Objects.nonNull(m.getCompanyId())){
+                            companyIds.add(m.getCompanyId());
+                        }
                         break;
                     case DEPARTMENT:
-                        deptIds.add(m.getCompanyId());
+                        if(Objects.nonNull(m.getCompanyId())){
+                            deptIds.add(m.getCompanyId());
+                        }
                         break;
                     default:
                         break;
                 }
             }else {
-                productIds.add(m.getProductId());
+                if(Objects.nonNull(m.getProductId())){
+                    productIds.add(m.getProductId());
+                }
             }
             if(Objects.nonNull(m.getCostTypeId())){
                 costTypeIds.add(m.getCostTypeId());
             }
+            if(Objects.nonNull(m.getToProjectId())){
+                projectIds.add(m.getToProjectId());
+            }
         });
         //部门
         List<Department> departments = departmentRepository.findByIds(deptIds);
@@ -159,19 +167,21 @@ public class ManageServiceImpl implements ManageService {
             m.setDepartment(departmentMap.get(m.getDeptId()));
             m.setProject(projectMap.get(m.getProjectId()));
             m.setProduct(producMap.get(m.getProductId()));
+            m.setToProject(projectMap.get(m.getToProjectId()));
             if(Objects.nonNull(m.getCostTypeId())){
                 m.setCostType(costTypeMap.get(m.getCostTypeId()));
             }
             if(Objects.nonNull(m.getCompanyType())){
                 switch (m.getCompanyType()){
                     case COMPANY:
-                        m.setCompany(companyMap.get(m.getCompanyId()));
-                        break;
-                    case PROJECT:
-                        m.setCompany(companyMap.get(m.getProjectId()));
+                        if(Objects.nonNull(m.getCompanyId())){
+                            m.setCompany(companyMap.get(m.getCompanyId()));
+                        }
                         break;
                     case DEPARTMENT:
-                        m.setCompany(companyMap.get(m.getDeptId()));
+                        if(Objects.nonNull(m.getCompanyId())){
+                            m.setCompany(companyMap.get(m.getDeptId()));
+                        }
                         break;
                     default:
                         break;
@@ -217,17 +227,19 @@ public class ManageServiceImpl implements ManageService {
         manage.setDepartment(departmentRepository.find(manage.getDeptId()));
         manage.setProject(projectRepository.find(manage.getProjectId()));
         manage.setProduct(productRepository.find(manage.getProductId()));
+        manage.setToProject(projectRepository.find(manage.getToProjectId()));
         if(Objects.nonNull(manage.getCompanyType())){
 
             switch (manage.getCompanyType()){
                 case COMPANY:
-                    manage.setCompany(companyRepository.find(manage.getCompanyId()));
-                    break;
-                case PROJECT:
-                    manage.setCompany(projectRepository.find(manage.getCompanyId()));
+                    if(Objects.nonNull(manage.getCompanyId())){
+                        manage.setCompany(companyRepository.find(manage.getCompanyId()));
+                    }
                     break;
                 case DEPARTMENT:
-                    manage.setCompany(departmentRepository.find(manage.getDeptId()));
+                    if(Objects.nonNull(manage.getCompanyId())){
+                        manage.setCompany(departmentRepository.find(manage.getDeptId()));
+                    }
                     break;
                 default:
                     break;