From 018ae7e16353db64db7604f1b4276c4033cef612 Mon Sep 17 00:00:00 2001
From: OathK1per <zhangypg@gmail.com>
Date: Tue, 14 Dec 2021 10:30:56 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=AE=A1=E7=90=86?=
 =?UTF-8?q?=E4=B8=8D=E5=B1=95=E7=A4=BAadmin=E8=B4=A6=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/java/cn/palmte/work/service/AccountService.java | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/src/main/java/cn/palmte/work/service/AccountService.java b/src/main/java/cn/palmte/work/service/AccountService.java
index f4b2506..097bffc 100644
--- a/src/main/java/cn/palmte/work/service/AccountService.java
+++ b/src/main/java/cn/palmte/work/service/AccountService.java
@@ -6,7 +6,6 @@ import cn.palmte.work.model.*;
 import cn.palmte.work.utils.DESCrypto;
 import cn.palmte.work.utils.InterfaceUtil;
 import cn.palmte.work.utils.StrKit;
-import cn.palmte.work.utils.excel.ExportUtils;
 import org.apache.commons.lang.RandomStringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -20,12 +19,8 @@ import top.jfunc.common.db.bean.Page;
 import top.jfunc.common.db.bean.Record;
 import top.jfunc.common.db.utils.Pagination;
 
-import javax.servlet.http.HttpServletResponse;
 import java.beans.Transient;
-import java.io.IOException;
 import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.stream.Collectors;
 
 /**
  * Created by wang.lin@esstx.cn on 2018/4/20.
@@ -63,6 +58,7 @@ public class AccountService {
     public Page<Admin> list(Map<String, String> searchInfo, int pageNumber, int pageSize) {
         QueryHelper queryHelper = new QueryHelper("*", "sys_user u");
         queryHelper.addCondition("u.is_deleted = 0");
+        queryHelper.addCondition("u.id > 1");
         queryHelper.addCondition(searchInfo.containsKey("realName"), "u.real_name like ?", "%" +
                 searchInfo.get("realName") + "%");
         queryHelper.addCondition(searchInfo.containsKey("telephone"), "u.telephone =?", searchInfo.get("telephone"));

From 87b9213bc76a9782c95c0c37f901abd07b9170c3 Mon Sep 17 00:00:00 2001
From: OathK1per <zhangypg@gmail.com>
Date: Wed, 15 Dec 2021 13:39:57 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E9=99=90=E5=88=B6=E5=A4=9A=E6=AC=A1?=
 =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/resources/static/assets/js/project_budget.js       | 6 ++++++
 src/main/resources/templates/admin/project_estimate_add.ftl | 4 ++++
 src/main/resources/templates/admin/project_final_add.ftl    | 2 ++
 src/main/resources/templates/admin/project_settle_add.ftl   | 4 ++++
 4 files changed, 16 insertions(+)

diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js
index f86f10e..d0b7812 100644
--- a/src/main/resources/static/assets/js/project_budget.js
+++ b/src/main/resources/static/assets/js/project_budget.js
@@ -6,9 +6,11 @@ $(function () {
     bindChangeableInput();
 
     $("#saveDraft").click(function () {
+        $("#saveDraft").attr('disabled',true);
 
         var message = verifyProjectContributionProfitRate();
         if (message) {
+            $("#saveDraft").attr('disabled',false);
             layuiAlert(message);
             return ;
         }
@@ -17,6 +19,7 @@ $(function () {
         var startTime = $("#startDate").val();
         var endTime = $("#endDate").val();
         if (startTime > endTime) {
+            $("#saveDraft").attr('disabled',false);
             window.confirm('开始日期应早于结束日期');
             return;
         }
@@ -25,9 +28,11 @@ $(function () {
         $("#pmsForm").submit();
     });
     $("#saveApprove").click(function () {
+        $("#saveApprove").attr('disabled',true);
 
         var message = verifyProjectContributionProfitRate();
         if (message) {
+            $("#saveApprove").attr('disabled',false);
             layuiAlert(message);
             return;
         }
@@ -35,6 +40,7 @@ $(function () {
         var startTime = $("#startDate").val();
         var endTime = $("#endDate").val();
         if (startTime > endTime) {
+            $("#saveApprove").attr('disabled',false);
             window.confirm('开始日期应早于结束日期');
             return;
         }
diff --git a/src/main/resources/templates/admin/project_estimate_add.ftl b/src/main/resources/templates/admin/project_estimate_add.ftl
index 11bd3a4..aa6bc51 100644
--- a/src/main/resources/templates/admin/project_estimate_add.ftl
+++ b/src/main/resources/templates/admin/project_estimate_add.ftl
@@ -334,9 +334,11 @@
     $(function () {
         calIncomeAndCost();
         $("#saveDraft").click(function () {
+            $("#saveDraft").attr('disabled',true);
             var startTime = $("#startDate").val();
             var endTime = $("#endDate").val();
             if (startTime > endTime) {
+                $("#saveDraft").attr('disabled',false);
                 window.confirm('开始日期应早于结束日期');
                 return;
             }
@@ -344,9 +346,11 @@
             $("#pmsForm").submit();
         });
         $("#saveApprove").click(function () {
+            $("#saveApprove").attr('disabled',true);
             var startTime = $("#startDate").val();
             var endTime = $("#endDate").val();
             if (startTime > endTime) {
+                $("#saveApprove").attr('disabled',false);
                 window.confirm('开始日期应早于结束日期');
                 return;
             }
diff --git a/src/main/resources/templates/admin/project_final_add.ftl b/src/main/resources/templates/admin/project_final_add.ftl
index 253a4d9..01ea323 100644
--- a/src/main/resources/templates/admin/project_final_add.ftl
+++ b/src/main/resources/templates/admin/project_final_add.ftl
@@ -365,11 +365,13 @@
     $(function () {
         calculateFinal();
             $("#saveFinal").click(function () {
+                $("#saveFinal").attr('disabled',true);
                 $("#pmsForm").attr("action","${base}/project/final/save");
                 $("#pmsForm").submit();
             });
 
             $("#saveApprove").click(function () {
+                $("#saveApprove").attr('disabled',true);
                 $("#pmsForm").attr("action",base+"/project/final/saveAndApprove");
                 $("#pmsForm").submit();
             });
diff --git a/src/main/resources/templates/admin/project_settle_add.ftl b/src/main/resources/templates/admin/project_settle_add.ftl
index 40fd352..741c939 100644
--- a/src/main/resources/templates/admin/project_settle_add.ftl
+++ b/src/main/resources/templates/admin/project_settle_add.ftl
@@ -426,6 +426,7 @@
         calculateSettle();
 
         $("#saveSettle").click(function () {
+            $("#saveSettle").attr('disabled',true);
             var result = valid();
             console.log(result);
             if (result) {
@@ -433,16 +434,19 @@
                 $("#pmsForm").attr("action", "${base}/project/settle/save");
                 $("#pmsForm").submit();
             } else {
+                $("#saveSettle").attr('disabled',false);
                 return false;
             }
         });
 
         $("#saveApprove").click(function () {
+            $("#saveApprove").attr('disabled',true);
             var result = valid();
             if (result) {
                 $("#pmsForm").attr("action",base+"/project/settle/saveAndApprove");
                 $("#pmsForm").submit();
             } else {
+                $("#saveApprove").attr('disabled',false);
                 return false;
             }
         });

From 7881488d50bcc26ab2aa80881f57d50e44c772a7 Mon Sep 17 00:00:00 2001
From: OathK1per <zhangypg@gmail.com>
Date: Wed, 15 Dec 2021 14:08:44 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E6=8A=A5=E9=94=99=E9=87=8D=E7=BD=AE?=
 =?UTF-8?q?=E7=8A=B6=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/resources/static/assets/js/project_budget.js       | 2 ++
 src/main/resources/templates/admin/project_estimate_add.ftl | 2 ++
 src/main/resources/templates/admin/project_final_add.ftl    | 2 ++
 src/main/resources/templates/admin/project_settle_add.ftl   | 2 ++
 4 files changed, 8 insertions(+)

diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js
index d0b7812..27db46a 100644
--- a/src/main/resources/static/assets/js/project_budget.js
+++ b/src/main/resources/static/assets/js/project_budget.js
@@ -26,6 +26,7 @@ $(function () {
 
         $("#pmsForm").attr("action",base+"/project/budgetEditSave");
         $("#pmsForm").submit();
+        $("#saveDraft").attr('disabled',false);
     });
     $("#saveApprove").click(function () {
         $("#saveApprove").attr('disabled',true);
@@ -47,6 +48,7 @@ $(function () {
 
         $("#pmsForm").attr("action",base+"/project/budgetEditSaveAndApprove");
         $("#pmsForm").submit();
+        $("#saveApprove").attr('disabled',false);
     });
 });
 
diff --git a/src/main/resources/templates/admin/project_estimate_add.ftl b/src/main/resources/templates/admin/project_estimate_add.ftl
index aa6bc51..45602a8 100644
--- a/src/main/resources/templates/admin/project_estimate_add.ftl
+++ b/src/main/resources/templates/admin/project_estimate_add.ftl
@@ -344,6 +344,7 @@
             }
             $("#pmsForm").attr("action","${base}/project/estimateAddSave");
             $("#pmsForm").submit();
+            $("#saveDraft").attr('disabled',false);
         });
         $("#saveApprove").click(function () {
             $("#saveApprove").attr('disabled',true);
@@ -356,6 +357,7 @@
             }
             $("#pmsForm").attr("action","${base}/project/estimateAddSaveAndApprove");
             $("#pmsForm").submit();
+            $("#saveApprove").attr('disabled',false);
         });
     });
 
diff --git a/src/main/resources/templates/admin/project_final_add.ftl b/src/main/resources/templates/admin/project_final_add.ftl
index 01ea323..9e919b2 100644
--- a/src/main/resources/templates/admin/project_final_add.ftl
+++ b/src/main/resources/templates/admin/project_final_add.ftl
@@ -368,12 +368,14 @@
                 $("#saveFinal").attr('disabled',true);
                 $("#pmsForm").attr("action","${base}/project/final/save");
                 $("#pmsForm").submit();
+                $("#saveFinal").attr('disabled',false);
             });
 
             $("#saveApprove").click(function () {
                 $("#saveApprove").attr('disabled',true);
                 $("#pmsForm").attr("action",base+"/project/final/saveAndApprove");
                 $("#pmsForm").submit();
+                $("#saveApprove").attr('disabled',false);
             });
         });
 
diff --git a/src/main/resources/templates/admin/project_settle_add.ftl b/src/main/resources/templates/admin/project_settle_add.ftl
index 741c939..df8b916 100644
--- a/src/main/resources/templates/admin/project_settle_add.ftl
+++ b/src/main/resources/templates/admin/project_settle_add.ftl
@@ -433,6 +433,7 @@
                 console.log("result: " + result);
                 $("#pmsForm").attr("action", "${base}/project/settle/save");
                 $("#pmsForm").submit();
+                $("#saveSettle").attr('disabled',false);
             } else {
                 $("#saveSettle").attr('disabled',false);
                 return false;
@@ -445,6 +446,7 @@
             if (result) {
                 $("#pmsForm").attr("action",base+"/project/settle/saveAndApprove");
                 $("#pmsForm").submit();
+                $("#saveApprove").attr('disabled',false);
             } else {
                 $("#saveApprove").attr('disabled',false);
                 return false;

From bcae5ea32113aa2f913816f2e0a8567f9eb70ee3 Mon Sep 17 00:00:00 2001
From: OathK1per <zhangypg@gmail.com>
Date: Wed, 15 Dec 2021 14:42:49 +0800
Subject: [PATCH 4/4] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=8D=E5=8F=AF?=
 =?UTF-8?q?=E9=87=8D=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/backend/ProjectController.java | 20 +++++++++++--
 .../templates/admin/project_estimate_add.ftl  | 28 ++++++++++++++++++-
 2 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
index db337fe..9624f1b 100644
--- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
+++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
@@ -4,7 +4,6 @@ import cn.palmte.work.bean.*;
 import cn.palmte.work.model.*;
 import cn.palmte.work.pojo.ActHisTask;
 import cn.palmte.work.service.*;
-import cn.palmte.work.utils.DateKit;
 import cn.palmte.work.utils.FreeMarkerUtil;
 import cn.palmte.work.utils.InterfaceUtil;
 import cn.palmte.work.utils.Utils;
@@ -24,7 +23,9 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -65,6 +66,8 @@ public class ProjectController extends BaseController {
     private ProcurementTypeService procurementTypeService;
     @Autowired
     private ProjectSettleIncomeRepository projectSettleIncomeRepository;
+    @Autowired
+    private ProjectRepository projectRepository;
 
     /**
      * 项目列表
@@ -525,4 +528,17 @@ public class ProjectController extends BaseController {
     public void initBinder(WebDataBinder webDataBinder) {
         webDataBinder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));
     }
+
+    /**
+     * 保存项目与用户的关系
+     */
+    @RequestMapping("/checkName")
+    @ResponseBody
+    public ResponseMsg checkName(@RequestParam String name) {
+        Project project = projectRepository.findByProjectName(name);
+        if (project != null) {
+            return ResponseMsg.buildFailedMsg("失败");
+        }
+        return ResponseMsg.buildSuccessMsg("成功");
+    }
 }
diff --git a/src/main/resources/templates/admin/project_estimate_add.ftl b/src/main/resources/templates/admin/project_estimate_add.ftl
index 45602a8..fc50803 100644
--- a/src/main/resources/templates/admin/project_estimate_add.ftl
+++ b/src/main/resources/templates/admin/project_estimate_add.ftl
@@ -60,7 +60,7 @@
                         <div class="am-g am-form-group am-margin-top">
                             <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目名称</div>
                             <div class="am-u-sm-6 am-u-md-6">
-                                <input type="text" class="am-input" data-validate-async data-validation-message="请输入项目名称(20字符以内)"
+                                <input type="text" id="name" class="am-input" data-validate-async data-validation-message="请输入项目名称(20字符以内)"
                                        name="name" placeholder="请输入项目名称(20字符以内)" maxlength="20"
                                        value="" required />
                             </div>
@@ -331,6 +331,7 @@
 <script src="${base}/assets/js/project_common.js"></script>
 <script src="${base}/assets/js/project_estimate.js"></script>
 <script>
+    var result = 0;
     $(function () {
         calIncomeAndCost();
         $("#saveDraft").click(function () {
@@ -342,6 +343,12 @@
                 window.confirm('开始日期应早于结束日期');
                 return;
             }
+            checkName();
+            if (result == 1) {
+                $("#saveDraft").attr('disabled',false);
+                window.confirm('项目名称已存在');
+                return;
+            }
             $("#pmsForm").attr("action","${base}/project/estimateAddSave");
             $("#pmsForm").submit();
             $("#saveDraft").attr('disabled',false);
@@ -355,12 +362,31 @@
                 window.confirm('开始日期应早于结束日期');
                 return;
             }
+            checkName();
+            if (result == 1) {
+                $("#saveApprove").attr('disabled',false);
+                window.confirm('项目名称已存在');
+                return;
+            }
             $("#pmsForm").attr("action","${base}/project/estimateAddSaveAndApprove");
             $("#pmsForm").submit();
             $("#saveApprove").attr('disabled',false);
         });
     });
 
+    function checkName () {
+        var name = $("#name").val();
+        $.ajax({
+            url: "${base}/project/checkName",
+            data: {name: name},
+            type: "post",
+            dataType: "json",
+            async: false,
+            success: function (data) {
+                result = data.status;
+            }
+        });
+    };
 </script>
 </@defaultLayout.layout>