From e96252ffd9f8368badf065436e2b58930fbd3b8d Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 22 四月 2020 13:41:59 +0800
Subject: [PATCH] 4/22

---
 src/main/java/com/highdatas/srs/web/SchemeController.java |   78 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 72 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/highdatas/srs/web/SchemeController.java b/src/main/java/com/highdatas/srs/web/SchemeController.java
index 62c17be..0de5da8 100644
--- a/src/main/java/com/highdatas/srs/web/SchemeController.java
+++ b/src/main/java/com/highdatas/srs/web/SchemeController.java
@@ -298,7 +298,7 @@
 
 
         //鐩綍
-        result.fluentPut("paths",childrenFiles );
+        result.fluentPut("paths",childrenFiles);
         return Result.success(result);
     }
 
@@ -377,6 +377,32 @@
             json.fluentPut("delayCnt", delayInt);
             json.fluentPut("finishCnt", finishInt);
 
+            //
+            List<SchemeDetail> schemeDetailList = iSchemeDetailService.selectList(new EntityWrapper<SchemeDetail>().eq("parent_id", scheme.getId()).eq("finish", true));
+            Date beginDate = null;
+            Date endDate = null;
+            for (SchemeDetail detail : schemeDetailList) {
+                if (beginDate == null) {
+                    beginDate = detail.getStartTime();
+                }
+                else {
+                    int i = DbUtils.compareDate(beginDate, detail.getStartTime());
+                    if(i == -1) {
+                        beginDate = detail.getStartTime();
+                    }
+                }
+
+                if (endDate == null) {
+                    endDate = detail.getFinishTime();
+                }else {
+                    int i = DbUtils.compareDate(endDate, detail.getFinishTime());
+                    if(i == 1) {
+                        endDate = detail.getFinishTime();
+                    }
+                }
+            }
+            json.fluentPut("beginDate", beginDate);
+            json.fluentPut("endDate", endDate);
             result.add(json);
         }
         jsonObjectPage.setRecords(result);
@@ -385,11 +411,9 @@
 
     @RequestMapping(value = "/addOrUpdate", method = RequestMethod.GET)
     public Result add(@RequestParam String reseachType, @RequestParam String name, @RequestParam Date startTime, @RequestParam Date endTime, HttpServletRequest request)  {
-
         String id = request.getParameter("id");
         String desp = request.getParameter("desp");
         String userId = request.getParameter("userId");
-
         Scheme scheme;
         if (StringUtils.isEmpty(id)) {
             scheme = new Scheme();
@@ -403,8 +427,29 @@
         if (StringUtils.isEmpty(scheme.getId())) {
             scheme.setId(DbUtils.getUUID());
         }
-        boolean insert = scheme.setUserId(userId).setCreateTime(new Date()).setName(name).setStartTime(startTime).setEndTime(endTime)
-                .setDesp(desp).setReseachType(reseachType).insertOrUpdate();
+        scheme.setUserId(userId).setCreateTime(new Date()).setName(name).setStartTime(startTime).setEndTime(endTime)
+                .setDesp(desp).setReseachType(reseachType);
+
+        List<SchemeDetail> schemeDetailList = iSchemeDetailService.selectList(new EntityWrapper<SchemeDetail>().eq("parent_id", scheme.getId()));
+        for (SchemeDetail detail : schemeDetailList) {
+            Date detailStartTime = detail.getStartTime();
+            if (detailStartTime != null) {
+                boolean effectiveDate = DbUtils.isEffectiveDate(detailStartTime, startTime, endTime);
+                if(!effectiveDate) {
+                    detail.setStartTime(startTime);
+                }
+            }
+            Date detailEndTime = detail.getEndTime();
+            if (detailEndTime != null) {
+                boolean effectiveDate = DbUtils.isEffectiveDate(detailEndTime, startTime, endTime);
+                if(!effectiveDate) {
+                    detail.setEndTime(endTime);
+                }
+            }
+            boolean updated = detail.updateById();
+
+        }
+        boolean insert = scheme.insertOrUpdate();
         if (insert) {
             return Result.success(scheme.getId());
         } else {
@@ -416,7 +461,28 @@
     public Result add(@PathVariable String id, HttpServletRequest request) throws JsonProcessingException {
         String data = request.getParameter("data");
         Scheme scheme = DbUtils.json2Bean(data, Scheme.class);
-        boolean b = scheme.insertOrUpdate();
+        Date startTime = scheme.getStartTime();
+        Date endTime = scheme.getEndTime();
+
+        List<SchemeDetail> schemeDetailList = iSchemeDetailService.selectList(new EntityWrapper<SchemeDetail>().eq("parent_id", scheme.getId()));
+        for (SchemeDetail detail : schemeDetailList) {
+            Date detailStartTime = detail.getStartTime();
+            if (detailStartTime != null) {
+                boolean effectiveDate = DbUtils.isEffectiveDate(detailStartTime, startTime, endTime);
+                if(!effectiveDate) {
+                    detail.setStartTime(startTime);
+                }
+            }
+            Date detailEndTime = detail.getEndTime();
+            if (detailEndTime != null) {
+                boolean effectiveDate = DbUtils.isEffectiveDate(detailEndTime, startTime, endTime);
+                if(!effectiveDate) {
+                    detail.setEndTime(endTime);
+                }
+            }
+            detail.updateById();
+        }
+        boolean b = scheme.updateById();
         // reseachType to enum
 
         if (b) {

--
Gitblit v1.8.0