Pārlūkot izejas kodu

开票项目类型

ljy121 1 gadu atpakaļ
vecāks
revīzija
3edb3a6a22

+ 4 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/entity/ProjectType.java

@@ -1,6 +1,7 @@
 package com.zjugis.business.bean.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 
@@ -48,6 +49,9 @@ public class ProjectType implements Serializable {
 
     private String typeCode;
 
+    @TableField(exist = false)
+    private Integer level;
+
 
 
 }

+ 13 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/contractinvoice/service/FlowContractInvoiceService.java

@@ -51,6 +51,9 @@ public class FlowContractInvoiceService {
     @Autowired
     ProjectAmountService projectAmountService;
 
+    @Autowired
+    ProjectTypeService projectTypeService;
+
     @Autowired
     ContractInvoiceMapper contractInvoiceMapper;
 
@@ -121,6 +124,16 @@ public class FlowContractInvoiceService {
             if (contract != null) {
                 if (StringUtils.isNotBlank(contract.getProjectId())) {
                     Project project = projectService.selectById(contract.getProjectId());
+                    if(StringUtils.isNotBlank(project.getProjectTypeId())) {
+                        List<ProjectType> parents = projectTypeService.selectParents(project.getProjectTypeId());
+                        if(!parents.isEmpty()) {
+                            StringBuilder projectTypeName = new StringBuilder(parents.get(0).getName());
+                            for (int i = 1; i < parents.size(); i++) {
+                                projectTypeName.append("-").append(parents.get(i).getName());
+                            }
+                            project.setProjectTypeName(projectTypeName.toString());
+                        }
+                    }
                     map.put("project", project);
                     ProjectAmount projectAmount = projectAmountService.selectById(contract.getProjectId());
                     if (projectAmount != null) {

+ 2 - 0
zjugis-business/src/main/java/com/zjugis/business/mapper/ProjectTypeMapper.java

@@ -20,5 +20,7 @@ public interface ProjectTypeMapper extends BaseMapper<ProjectType> {
     List<ProjectTypeNode> tree();
 
     String topCode(String id);
+
+    List<ProjectType> selectParents(String id);
 }
 

+ 2 - 0
zjugis-business/src/main/java/com/zjugis/business/service/ProjectTypeService.java

@@ -51,5 +51,7 @@ public interface ProjectTypeService {
     List<ProjectTypeNode> tree();
 
     String topCode(String id);
+
+    List<ProjectType> selectParents(String projectTypeId);
 }
 

+ 9 - 0
zjugis-business/src/main/java/com/zjugis/business/service/impl/ProjectTypeServiceImpl.java

@@ -92,6 +92,15 @@ public class ProjectTypeServiceImpl implements ProjectTypeService {
 
     }
 
+    /**
+     * @param id
+     * @return
+     */
+    @Override
+    public List<ProjectType> selectParents(String id) {
+        return projectTypeMapper.selectParents(id);
+    }
+
     private void recursiveSetChildren(List<ProjectTypeNode> parents,  Map<String, List<ProjectTypeNode>> projectGroup) {
         for (ProjectTypeNode parent : parents) {
             List<ProjectTypeNode> children = projectGroup.get(parent.getId());

+ 8 - 0
zjugis-business/src/main/resources/mapper/oracle/ProjectTypeMapper.xml

@@ -17,4 +17,12 @@
         CONNECT BY PRIOR pid = id)
         WHERE pid IS NULL OR pid = ''
     </select>
+
+    <select id="selectParents" resultType="com.zjugis.business.bean.entity.ProjectType">
+        SELECT level, id, pid, name, index_code, type_code
+        FROM project_type
+        START WITH id = #{id,jdbcType=VARCHAR}
+        CONNECT BY PRIOR pid = id
+        order by level DESC
+    </select>
 </mapper>