diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/inComePlanAgg/InComePlanAgg.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/inComePlanAgg/InComePlanAgg.java
index d275e0432fc75fe4fec498098b9646e3dc000989..74335c8d5d81eafb6b64a8f11dd0030ecfab3f14 100644
--- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/inComePlanAgg/InComePlanAgg.java
+++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/aggregate/inComePlanAgg/InComePlanAgg.java
@@ -1,6 +1,7 @@
 package com.seasky.projectplan.domain.aggregate.inComePlanAgg;
 
 
+import com.seasky.core.ddd.annotation.DomainKey;
 import com.seasky.core.ddd.base.BaseAggregate;
 import com.seasky.projectplan.domain.aggregate.projectpersonplan.PersonSubjectEntity;
 import io.swagger.annotations.ApiModelProperty;
@@ -26,6 +27,7 @@ public class InComePlanAgg extends BaseAggregate {
     /**
      * 涓婚敭id
      */
+    @DomainKey
     private Long id;
 
     /**
@@ -74,6 +76,11 @@ public class InComePlanAgg extends BaseAggregate {
      * */
     private String otherJson;
 
+    /*
+     * 瀛愯〃 鐖剁骇id
+     * */
+    private Long entityParentId;
+
     /*
      * 鏀跺叆瀛愯〃闆嗗悎
      * */
@@ -104,11 +111,16 @@ public class InComePlanAgg extends BaseAggregate {
     public void setState(String state){ this.state = state; }
 
     /**
-     * 璁剧疆涓昏〃ID
+     * 璁剧疆瀛愯〃鐖剁骇ID
+     */
+    public void setEntityParentId(Long parentId){ this.entityParentId = parentId; }
+
+    /**
+     * 璁剧疆瀛愯〃鐖剁骇ID
      */
-    public void setParentId(Long id){
-        for (InComeSubEntity item:inComeSubList) {
-            item.setParentid(this.id);
+    public void setParentId(Long parentId){
+        for (InComeSubEntity en:inComeSubList) {
+            en.setParentid(parentId);
         }
     }
 }
diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/InComePlanDomainSvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/InComePlanDomainSvrImpl.java
index f115a641a305640a596990bfffcd25ae268bf34a..611a140e17f4ff4082716ae3009e938fa30b4576 100644
--- a/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/InComePlanDomainSvrImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/projectplan/domain/service/InComePlanDomainSvrImpl.java
@@ -56,6 +56,7 @@ public class InComePlanDomainSvrImpl implements InComePlanDomainSvr {
             }
         }
         Long retrun = repository.saveInComePlan(inComePlanAgg);
+        inComePlanAgg.setEntityParentId(retrun);
         inComePlanAgg.setParentId(retrun);
         //鏄惁淇濆瓨瀛愯〃
         if (inComePlanAgg.getInComeSubList() != null && inComePlanAgg.getInComeSubList().size() >0){
diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectPlanBookMapper.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectPlanBookMapper.java
index 6f43d0c28de3a7e3309891540fe1fa7a69f6f628..0e391e05364b7942b6c78192614b85a99acedcae 100644
--- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectPlanBookMapper.java
+++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/table/ProjectPlanBookMapper.java
@@ -179,4 +179,13 @@ public interface ProjectPlanBookMapper extends BaseMapper<ProjectPlanBookPo> {
      * @return {@link Page<ProjectInfoPlanDo>}
      */
     Page<ProjectInfoPlanDo> queryProjectInfoPlanPageByOwnCurrentUserDept(Page<ProjectPlanBookOut> page, @Param("pm") ProjectInfoPlanQry projectInfoPlanQry);
+
+
+    /**
+     * 鏍规嵁 project_library_id plan_type 鏌ヨ
+     *
+     * @param projectInfoPlanQry 椤圭洰璁″垝涔o
+     * @return {@link List<ProjectPlanBookPo>}
+     */
+    List<ProjectPlanBookPo> queryProjectInfoPlanBYPO(@Param("pm") ProjectInfoPlanQry projectInfoPlanQry);
 }
diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/ProjectPlanBookMapper.xml b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/ProjectPlanBookMapper.xml
index 37828b97c9b277fafda39193bdf4d19ac050fdaf..58c9d9e6cb9d2c4714dbb5e1ea97a3d1474178e3 100644
--- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/ProjectPlanBookMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/db/mapper/xml/ProjectPlanBookMapper.xml
@@ -823,4 +823,14 @@
             </if>
         </where>
     </select>
+
+    <!-- 鏍规嵁 project_library_id plan_type 鏌ヨ -->
+    <select id="queryProjectInfoPlanBYPO"
+            resultType="com.seasky.projectplan.infrastructure.dataobject.po.ProjectPlanBookPo">
+        select TOP(1) * from project_plan_book
+        <where>
+            available = 'YES'
+                and project_library_id = #{pm.projectLibraryId} and  plan_type = #{pm.planType}
+        </where>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryQuerySvrImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryQuerySvrImpl.java
index e9dabc2db2e73a6affc2fb12e1bd68ec2cf1df9a..f31f90ada6a6f01d93e150cd4704a1538f583cd8 100644
--- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryQuerySvrImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/reader/projectlibrary/ProjectLibraryQuerySvrImpl.java
@@ -17,7 +17,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 椤圭洰搴撴煡璇vr impl
@@ -152,7 +154,12 @@ public class ProjectLibraryQuerySvrImpl implements ProjectLibraryQuerySvr {
         QueryWrapper<ProjectPlanBookPo> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("project_library_id", projectInfoPlanQry.getProjectLibraryId());
         queryWrapper.eq("plan_type", projectInfoPlanQry.getPlanType());
-        return projectPlanBookMapper.selectOne(queryWrapper);
+        List<ProjectPlanBookPo> po = projectPlanBookMapper.queryProjectInfoPlanBYPO(projectInfoPlanQry);
+        if (po != null && po.size()>0){
+            return po.get(0);
+        }else{
+            return null;
+        }
     }
 
 }
diff --git a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/inComePlan/inComeSub/InComeSubRepositoryImpl.java b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/inComePlan/inComeSub/InComeSubRepositoryImpl.java
index f4db49c8cb580812a393a7daab5f38ccfa6df92e..54a12144df03dec6bec0b7d5b41417f5512062d4 100644
--- a/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/inComePlan/inComeSub/InComeSubRepositoryImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/projectplan/infrastructure/repository/inComePlan/inComeSub/InComeSubRepositoryImpl.java
@@ -44,7 +44,7 @@ public class InComeSubRepositoryImpl implements InComeSubRepository {
         Map<String,Object> maps;
         for (InComeSubPo po:inComeSubPo) {
             maps=new HashMap<>(1);
-            maps.put("parentid",po.getParentid());
+            maps.put("parentid",inComePlanAgg.getEntityParentId());
             inComeSubMapper.deleteByMap(maps);
             po.prepareBeforeInsert();
             if (inComeSubMapper.insert(po) != 1){