From 06a482f820e31bc20479b776a1b362191cbbe3ae Mon Sep 17 00:00:00 2001
From: wxj334 <2241669945@qq.com>
Date: Wed, 16 Feb 2022 18:17:00 +0800
Subject: [PATCH] 111

---
 .../api/IProjectPlanController.java           |   9 ++
 .../dto/cmd/ControlListCmd.java               |   7 +
 .../dto/cmd/SapTemplateCmd.java               |   1 -
 .../dbprojectplanmanage/dto/out/SapOut.java   |   6 +
 .../command/projectPlan/IProjectPlanSvr.java  |  10 +-
 .../projectPlan/ProjectPlanSvrImpl.java       | 121 ++++++++++++------
 .../IProjectPlanRepository.java               |   2 +-
 .../IProjectPlanRepositoryImpl.java           |  14 +-
 .../controller/ProjectPlanController.java     |   6 +
 9 files changed, 132 insertions(+), 44 deletions(-)

diff --git a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/api/IProjectPlanController.java b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/api/IProjectPlanController.java
index ddf9771..42f7476 100644
--- a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/api/IProjectPlanController.java
+++ b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/api/IProjectPlanController.java
@@ -155,4 +155,13 @@ public interface IProjectPlanController {
     @PostMapping(path = "getSAPTemplate")
     Result<SapOut> getSAPTemplate(SapTemplateCmd sapTemplateCmd);
 
+    /**
+     * 閫氳繃id鑾峰彇saptemplate
+     *
+     * @param id id
+     * @return {@link SapOut}
+     */
+    @PostMapping(path = "getSAPTemplateById")
+    Result<SapOut> getSAPTemplateById(Long id);
+
 }
diff --git a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/cmd/ControlListCmd.java b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/cmd/ControlListCmd.java
index e560571..d4b25a0 100644
--- a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/cmd/ControlListCmd.java
+++ b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/cmd/ControlListCmd.java
@@ -54,5 +54,12 @@ public class ControlListCmd extends BaseDTO {
     @NotNull(message = "棰濆害id涓嶈兘涓虹┖")
     private String controlId;
 
+    /**
+     * 妯″瀷浠g爜
+     */
+    @ApiModelProperty(name = "妯℃澘缂栫爜", example = "22")
+    @NotNull(message = "妯℃澘缂栫爜涓嶈兘涓虹┖")
+    private String modelCode;
+
 
 }
diff --git a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/cmd/SapTemplateCmd.java b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/cmd/SapTemplateCmd.java
index f20b198..fe8464d 100644
--- a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/cmd/SapTemplateCmd.java
+++ b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/cmd/SapTemplateCmd.java
@@ -29,7 +29,6 @@ public class SapTemplateCmd extends BaseDTO {
      * 缂栧彿
      */
     @ApiModelProperty(name = "缂栧彿", example = "")
-    @NotNull(message = "缂栧彿涓嶈兘涓虹┖")
     private String code;
 
 }
diff --git a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/SapOut.java b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/SapOut.java
index 641f14f..3c4b8ab 100644
--- a/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/SapOut.java
+++ b/ServiceSite/facade/src/main/java/com/seasky/dbprojectplanmanage/dto/out/SapOut.java
@@ -29,4 +29,10 @@ public class SapOut extends BaseDTO {
     @ApiModelProperty(name = "sap妯℃澘", example = "")
     private List<SapQuotaOut> sapQuotaOuts;
 
+    /**
+     * 妯″瀷浠g爜
+     */
+    @ApiModelProperty(name = "妯℃澘缂栫爜", example = "")
+    private String ModelCode;
+
 }
diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/command/projectPlan/IProjectPlanSvr.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/command/projectPlan/IProjectPlanSvr.java
index 15940ae..2b8ee1a 100644
--- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/command/projectPlan/IProjectPlanSvr.java
+++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/command/projectPlan/IProjectPlanSvr.java
@@ -97,6 +97,14 @@ public interface IProjectPlanSvr {
      * @param sapTemplateCmd sap妯℃澘cmd
      * @return {@link List}<{@link SapOut}>
      */
-    List<SapOut> getSAPTemplate(SapTemplateCmd sapTemplateCmd);
+    SapOut getSAPTemplate(SapTemplateCmd sapTemplateCmd);
+
+    /**
+     * 閫氳繃id鑾峰彇saptemplate
+     *
+     * @param id id
+     * @return {@link SapOut}
+     */
+    SapOut getSAPTemplateById(Long id);
 
 }
diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/command/projectPlan/ProjectPlanSvrImpl.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/command/projectPlan/ProjectPlanSvrImpl.java
index 989fb12..b561fc0 100644
--- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/command/projectPlan/ProjectPlanSvrImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/application/command/projectPlan/ProjectPlanSvrImpl.java
@@ -326,7 +326,7 @@ public class ProjectPlanSvrImpl implements IProjectPlanSvr {
         }
 
         //淇敼缂栧埗涔︿腑鐨勬帶鍒堕」
-        iProjectPlanRepository.saveControl(controlVos1, id);
+        iProjectPlanRepository.saveControl(controlVos1, id, controlListCmd.get(0).getModelCode());
 
     }
 
@@ -433,7 +433,7 @@ public class ProjectPlanSvrImpl implements IProjectPlanSvr {
      * @return {@link List}<{@link SapOut}>
      */
     @Override
-    public List<SapOut> getSAPTemplate(SapTemplateCmd sapTemplateCmd) {
+    public SapOut getSAPTemplate(SapTemplateCmd sapTemplateCmd) {
 
         List<PlanSubjectPo> planSubjectPos = iProjectPlanRepository.getPlanSubject(sapTemplateCmd.getId());
 
@@ -441,7 +441,7 @@ public class ProjectPlanSvrImpl implements IProjectPlanSvr {
             throw new DataAccessException(
                     Error.builder()
                             .responseCode(ResponseCode.DATA_VERIFY_NULL_POINTER)
-                            .message("闈炴硶鐨勭敵鎶ヤ功")
+                            .message("娌℃湁閰嶇疆瀹炴柦鍐呭")
                             .build()
             );
         }
@@ -456,6 +456,7 @@ public class ProjectPlanSvrImpl implements IProjectPlanSvr {
         }
 
         List<SapQuotaOut> sapQuotaOuts = new ArrayList<>();
+
         List<QuotaDo> quota = iProjectPlanRepository.getQuota(sapTemplateCmd.getCode());
 
         if (ObjectUtil.isEmpty(quota)) {
@@ -467,55 +468,97 @@ public class ProjectPlanSvrImpl implements IProjectPlanSvr {
             );
         }
 
-        List<ControlPo> control = iProjectPlanRepository.getControl(sapTemplateCmd.getId());
-        if (ObjectUtils.isEmpty(control)) {
-            for (SapPlanSubjectOut sapPlanSubjectOut : sapPlanSubjectOuts) {
-
-                Optional<QuotaDo> first = quota.stream().filter(s -> s.getName().contains(sapPlanSubjectOut.getName())).findFirst();
-
-                if (ObjectUtils.isEmpty(first)) {
-                    SapQuotaOut sapQuotaOut = new SapQuotaOut(
-                            "",
-                            "",
-                            sapPlanSubjectOut.getSubtotal()
-                    );
-                    sapQuotaOut.setId(sapPlanSubjectOut.getId());
-                    sapQuotaOuts.add(sapQuotaOut);
-                }else {
-                    SapQuotaOut sapQuotaOut = new SapQuotaOut(
-                            first.get().getName(),
-                            first.get().getCode(),
-                            sapPlanSubjectOut.getSubtotal()
-                    );
-                    sapQuotaOut.setId(sapPlanSubjectOut.getId());
-                    sapQuotaOuts.add(sapQuotaOut);
-                }
+        for (SapPlanSubjectOut sapPlanSubjectOut : sapPlanSubjectOuts) {
 
-            }
-        } else {
-            for (ControlPo controlPo : control) {
+            Optional<QuotaDo> first = quota.stream().filter(s -> s.getName().contains(sapPlanSubjectOut.getName())).findFirst();
+
+            if (ObjectUtils.isEmpty(first)) {
                 SapQuotaOut sapQuotaOut = new SapQuotaOut(
-                        controlPo.getControlName(),
-                        controlPo.getControlCode(),
-                        controlPo.getTotalMoney()
+                        "",
+                        "",
+                        sapPlanSubjectOut.getSubtotal()
                 );
-                sapQuotaOut.setId(Long.valueOf(controlPo.getControlId()));
+                sapQuotaOut.setId(sapPlanSubjectOut.getId());
+                sapQuotaOuts.add(sapQuotaOut);
+            }else {
+                SapQuotaOut sapQuotaOut = new SapQuotaOut(
+                        first.get().getName(),
+                        first.get().getCode(),
+                        sapPlanSubjectOut.getSubtotal()
+                );
+                sapQuotaOut.setId(sapPlanSubjectOut.getId());
                 sapQuotaOuts.add(sapQuotaOut);
-
             }
 
-
         }
 
-        ArrayList<SapOut> sapOuts = new ArrayList<>();
+        String modelCode = sapTemplateCmd.getCode();
+
         SapOut sapOut = new SapOut(
                 sapPlanSubjectOuts,
-                sapQuotaOuts
+                sapQuotaOuts,
+                modelCode
         );
-        sapOuts.add(sapOut);
 
-        return sapOuts;
+        return sapOut;
     }
 
+    /**
+     * 閫氳繃id鑾峰彇saptemplate
+     *
+     * @param id id
+     * @return {@link SapOut}
+     */
+    @Override
+    public SapOut getSAPTemplateById(Long id) {
+
+        List<PlanSubjectPo> planSubjectPos = iProjectPlanRepository.getPlanSubject(id);
+
+        if (ObjectUtil.isEmpty(planSubjectPos)) {
+            throw new DataAccessException(
+                    Error.builder()
+                            .responseCode(ResponseCode.DATA_VERIFY_NULL_POINTER)
+                            .message("娌℃湁閰嶇疆瀹炴柦鍐呭")
+                            .build()
+            );
+        }
+        List<SapPlanSubjectOut> sapPlanSubjectOuts = new ArrayList<>();
+        for (PlanSubjectPo planSubjectPo : planSubjectPos) {
+            SapPlanSubjectOut sapPlanSubjectOut = new SapPlanSubjectOut(
+                    planSubjectPo.getName(),
+                    planSubjectPo.getSubtotal()
+            );
+            sapPlanSubjectOut.setId(planSubjectPo.getId());
+            sapPlanSubjectOuts.add(sapPlanSubjectOut);
+        }
+
+        ArrayList<SapQuotaOut> sapQuotaOuts = new ArrayList<>();
+        List<ControlPo> control = iProjectPlanRepository.getControl(id);
+
+        for (ControlPo controlPo : control) {
+            SapQuotaOut sapQuotaOut = new SapQuotaOut(
+                    controlPo.getControlName(),
+                    controlPo.getControlCode(),
+                    controlPo.getTotalMoney()
+            );
+            sapQuotaOut.setId(Long.valueOf(controlPo.getControlId()));
+            sapQuotaOuts.add(sapQuotaOut);
+
+        }
+        String modelCode = "";
+        ProjectPlanAgg projectPlanAgg = iProjectPlanRepository.queryProjectPlan(id);
+        if (!ObjectUtils.isEmpty(projectPlanAgg)) {
+            modelCode = projectPlanAgg.getModelCode();
+        }
+
+        SapOut sapOut = new SapOut(
+                sapPlanSubjectOuts,
+                sapQuotaOuts,
+                modelCode
+        );
+
+        return sapOut;
+
+    }
 
 }
diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/domain/aggregate/projectPlanAggregate/IProjectPlanRepository.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/domain/aggregate/projectPlanAggregate/IProjectPlanRepository.java
index 87be0a7..bc95bd7 100644
--- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/domain/aggregate/projectPlanAggregate/IProjectPlanRepository.java
+++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/domain/aggregate/projectPlanAggregate/IProjectPlanRepository.java
@@ -52,7 +52,7 @@ public interface IProjectPlanRepository  {
      * @param id 椤圭洰璁″垝gg
      * @return {@link ControlVo}
      */
-     void saveControl(List<ControlVo> controlVo, Long id);
+     void saveControl(List<ControlVo> controlVo, Long id, String modelCode);
 
 
     /**
diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/repository/test/projectPlan/IProjectPlanRepositoryImpl.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/repository/test/projectPlan/IProjectPlanRepositoryImpl.java
index 2bfb2f4..8819474 100644
--- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/repository/test/projectPlan/IProjectPlanRepositoryImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/infrastructure/repository/test/projectPlan/IProjectPlanRepositoryImpl.java
@@ -137,7 +137,7 @@ public class IProjectPlanRepositoryImpl extends AbstractService<ProjectPlanPo, I
         HashMap<String, Object> control = new HashMap<>(1);
         control.put("parentId", id);
         IControlMapper.deleteByMap(control);
-        
+
         IProjectPlanMapper.deleteById(id);
 
     }
@@ -180,7 +180,7 @@ public class IProjectPlanRepositoryImpl extends AbstractService<ProjectPlanPo, I
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void saveControl(List<ControlVo> controlVo, Long id) {
+    public void saveControl(List<ControlVo> controlVo, Long id, String modelCode) {
 
         Map<String, Object> control = new HashMap<>(1);
         control.put("parentId", id);
@@ -191,6 +191,10 @@ public class IProjectPlanRepositoryImpl extends AbstractService<ProjectPlanPo, I
         for (ControlPo controlPo : controlPos) {
             IControlMapper.insert(controlPo);
         }
+        ProjectPlanPo projectPlanPo = new ProjectPlanPo();
+        projectPlanPo.setId(id);
+        projectPlanPo.setModelCode(modelCode);
+        IProjectPlanMapper.updateById(projectPlanPo);
 
 
     }
@@ -240,6 +244,12 @@ public class IProjectPlanRepositoryImpl extends AbstractService<ProjectPlanPo, I
         return planSubjectPos;
     }
 
+    /**
+     * 寰楀埌鎺у埗
+     *
+     * @param id id
+     * @return {@link List}<{@link ControlPo}>
+     */
     @Override
     public List<ControlPo> getControl(Long id) {
 
diff --git a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/interfaces/controller/ProjectPlanController.java b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/interfaces/controller/ProjectPlanController.java
index 562b4b4..6fd3d9e 100644
--- a/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/interfaces/controller/ProjectPlanController.java
+++ b/ServiceSite/src/main/java/com/seasky/dbprojectplanmanage/interfaces/controller/ProjectPlanController.java
@@ -214,5 +214,11 @@ public class ProjectPlanController extends BaseController implements IProjectPla
         return ok(ResponseCode.SUCCESS, IProjectPlanSvr.getSAPTemplate(sapTemplateCmd));
     }
 
+    @Override
+    @ApiOperation("鑾峰彇SAP鍘嗗彶璁板綍")
+    public Result<SapOut> getSAPTemplateById(Long id) {
+        return ok(ResponseCode.SUCCESS, IProjectPlanSvr.getSAPTemplateById(id));
+    }
+
 
 }
-- 
GitLab