From 6892c31200a7ed1b0e60ee5aff794b1fcecc7ef6 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 01 十一月 2023 16:28:06 +0800
Subject: [PATCH] 解决文件上传时,文件名重复问题

---
 ruoyi-admin/pom.xml                                                                          |   17 ++++-
 ruoyi-admin/src/main/resources/application-druid.yml                                         |   10 +-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java              |   20 ++++++
 ruoyi-admin/src/main/resources/logback.xml                                                   |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/enums/PersonType.java                     |   19 ++---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java        |    3 +
 ruoyi-admin/src/main/resources/application.yml                                               |   79 +++++++++++++------------
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java |   12 +++
 8 files changed, 103 insertions(+), 59 deletions(-)

diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 7260ed1..b6ecf42 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -8,9 +8,9 @@
         <version>3.7.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-<!--    <packaging>war</packaging>-->
-    <packaging>jar</packaging>
-    <artifactId>ruoyi-admin-opo-8086</artifactId>
+    <packaging>war</packaging>
+<!--    <packaging>jar</packaging>-->
+    <artifactId>ruoyi-admin</artifactId>
 
     <description>
         web鏈嶅姟鍏ュ彛
@@ -86,6 +86,17 @@
         <version>4.5.12</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4.9</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <version>5.2.9.RELEASE</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
index e5f649b..d361a51 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -15,6 +15,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.MediaType;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -23,6 +24,7 @@
 import javax.management.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.lang.management.ManagementFactory;
 import java.util.Set;
 
@@ -75,6 +77,24 @@
         try {
             // 涓婁紶鏂囦欢璺緞
             String filePath = RuoYiConfig.getUploadPath();
+
+            //鍒ゆ柇鏂囦欢鏄惁瀛樺湪
+            String filename = file.getOriginalFilename().trim();
+            String felinamePath = FileUploadUtils.extractFilename(file);
+//            String pathFileName = FileUploadUtils.getPathFileName(filePath, s);
+            File file1 = new File(filePath + "/" + felinamePath);
+            boolean exists = file1.exists();
+            if (exists) {
+                int i = filename.lastIndexOf(".");
+                String startStr = filename.substring(0, i);
+                String endStr = filename.substring(i, filename.length());
+
+                String newFilename = startStr + System.currentTimeMillis() + endStr; // your new filename
+                String contentType = file.getContentType();
+                byte[] bytes = file.getBytes();
+                file = new MockMultipartFile(newFilename, newFilename, contentType, bytes);
+            }
+
             // 涓婁紶骞惰繑鍥炴柊鏂囦欢鍚嶇О
             String fileName = FileUploadUtils.upload(filePath, file);
             String url1 = serverConfig.getUrl();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/enums/PersonType.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/enums/PersonType.java
index b03c505..a88221f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/enums/PersonType.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/enums/PersonType.java
@@ -4,33 +4,30 @@
 
 /**
  * 鐢ㄦ埛绫诲瀷
- * 
+ *
  * @author ls
  */
-public enum PersonType
-{
+public enum PersonType {
     OTHER("0", "鍏朵粬浜哄憳"),
     PROFESSIONAL("1", "涓撹亴浜哄憳"),
     COORDINATOR("2", "鍗忚皟鍛�"),
-    EXPERT("3","涓撳"),
-    KIN("4","瀹跺睘");
+    EXPERT("3", "涓撳"),
+    KIN("4", "瀹跺睘"),
+    MESSAGE("5", "绠$悊浜哄憳");
 
     private final String code;
     private final String info;
 
-    PersonType(String code, String info)
-    {
+    PersonType(String code, String info) {
         this.code = code;
         this.info = info;
     }
 
-    public String getCode()
-    {
+    public String getCode() {
         return code;
     }
 
-    public String getInfo()
-    {
+    public String getInfo() {
         return info;
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
index 0e26b67..b14a7c4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -143,6 +143,9 @@
         Integer checkstatus = spFinancialExpensesIn.getCheckstatus();
 
         String donorname = spFinancialExpensesIn.getDonorname();
+        if (StringUtils.isEmpty(donorname)) {
+            donorname = null;
+        }
         if (pageNum == null) {
             pageNum = 1;
         }
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 56e0fcc..c25e58b 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -6,13 +6,13 @@
         druid:
             # 涓诲簱鏁版嵁婧�
             master:
-                # 鍖婚櫌鐜
-                #url: jdbc:mysql://129.88.242.37:3308/opo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-                #username: JQ
-                #password: Jqserver88
+#                # 鍖婚櫌鐜
+#                url: jdbc:mysql://129.88.242.37:3308/opo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+#                username: JQ
+#                password: Jqserver88
 
                 # 寮�鍙戠幆澧�
-                url: jdbc:mysql://116.62.18.175:6002/lihuopo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+                url: jdbc:mysql://116.62.18.175:6002/opo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
                 username: opo
                 password: opo@2022
 
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 297e022..326dc40 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -10,11 +10,11 @@
   demoEnabled: true
   # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
   # 寮�鍙戠幆澧� window
-  profile: D:/lihusoft/OPO/WEB/Upload
+  #  profile: D:/lihusoft/OPO/WEB/Upload
   # 寮�鍙戠幆澧� linux
-#  profile: /home/smartor/uploadFile
+  #  profile: /home/smartor/uploadFile
   # 鍖婚櫌鐜
-  #profile: E:/OPO/WEB/Upload
+  profile: E:/OPO/WEB/Upload
   # 鑾峰彇ip鍦板潃寮�鍏�
   addressEnabled: false
   # 楠岃瘉鐮佺被鍨� math 鏁扮粍璁$畻 char 瀛楃楠岃瘉
@@ -23,7 +23,7 @@
 # 寮�鍙戠幆澧冮厤缃�
 server:
   # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 8086
+  port: 8080
   servlet:
     # 搴旂敤鐨勮闂矾寰�
     context-path: /
@@ -37,9 +37,9 @@
 
 # 鏃ュ織閰嶇疆
 logging:
-  file: 
+  file:
     # 鏃ュ織璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/logs锛孡inux閰嶇疆 /home/ruoyi/logs,涓嶅~鍚岀骇鐩綍logs锛�
-    path: logs
+    path: D:/ruoyi/ls/logs
   level:
     com.ruoyi: debug
     org.springframework: warn
@@ -50,15 +50,15 @@
   messages:
     # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
     basename: i18n/messages
-  profiles: 
+  profiles:
     active: druid
   # 鏂囦欢涓婁紶
   servlet:
-     multipart:
-       # 鍗曚釜鏂囦欢澶у皬
-       max-file-size:  20MB
-       # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
-       max-request-size:  40MB
+    multipart:
+      # 鍗曚釜鏂囦欢澶у皬
+      max-file-size: 20MB
+      # 璁剧疆鎬讳笂浼犵殑鏂囦欢澶у皬
+      max-request-size: 40MB
   # 鏈嶅姟妯″潡
   devtools:
     restart:
@@ -70,10 +70,10 @@
       enabled: ALWAYS
   # redis 閰嶇疆
   redis:
-    # 鍦板潃銆佸瘑鐮併�佺鍙o紙榛樿涓�6379锛夛細鍖婚櫌鐜
-    #host: 129.88.242.37
-    #password: jqserver
-    #port: 6379
+    #    # 鍦板潃銆佸瘑鐮併�佺鍙o紙榛樿涓�6379锛夛細鍖婚櫌鐜
+    #    host: 129.88.242.37
+    #    password: jqserver
+    #    port: 6379
 
     # 鍦板潃銆佸瘑鐮併�佺鍙o紙榛樿涓�6379锛夛細寮�鍙戠幆澧�
     host: 116.62.18.175
@@ -97,35 +97,38 @@
 
 # token閰嶇疆
 token:
-    # 浠ょ墝鑷畾涔夋爣璇�
-    header: Authorization
-    # 浠ょ墝瀵嗛挜
-    secret: abcdefghijklmnopqrstuvwxyz
-    # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-    expireTime: 3000
-  
+  # 浠ょ墝鑷畾涔夋爣璇�
+  header: Authorization
+  # 浠ょ墝瀵嗛挜
+  secret: abcdefghijklmnopqrstuvwxyz
+  # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
+  expireTime: 3000
+
 # MyBatis閰嶇疆
 #mybatis:
 # MyBatis Plus閰嶇疆
 mybatis-plus:
-    # 鎼滅储鎸囧畾鍖呭埆鍚�
-    typeAliasesPackage: com.ruoyi.**.domain
-    # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
-    mapperLocations: classpath*:mapper/**/*Mapper.xml
-    # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
-    configLocation: classpath:mybatis/mybatis-config.xml
-      # configuration:
+  # 鎼滅储鎸囧畾鍖呭埆鍚�
+  typeAliasesPackage: com.ruoyi.**.domain
+  # 閰嶇疆mapper鐨勬壂鎻忥紝鎵惧埌鎵�鏈夌殑mapper.xml鏄犲皠鏂囦欢
+  mapperLocations: classpath*:mapper/**/*Mapper.xml
+  # 鍔犺浇鍏ㄥ眬鐨勯厤缃枃浠�
+  configLocation: classpath:mybatis/mybatis-config.xml
+  # configuration:
   # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-    global-config:
-      db-config:
-        logic-delete-field: isdel # 鍏ㄥ眬閫昏緫鍒犻櫎鐨勫疄浣撳瓧娈靛悕
-        logic-delete-value: 1 # 閫昏緫宸插垹闄ゅ��(榛樿涓� 1)
-        logic-not-delete-value: 0 # 閫昏緫鏈垹闄ゅ��(榛樿涓� 0)
+  global-config:
+    db-config:
+      logic-delete-field: isdel # 鍏ㄥ眬閫昏緫鍒犻櫎鐨勫疄浣撳瓧娈靛悕
+      logic-delete-value: 1 # 閫昏緫宸插垹闄ゅ��(榛樿涓� 1)
+      logic-not-delete-value: 0 # 閫昏緫鏈垹闄ゅ��(榛樿涓� 0)
+#      update-strategy: IGNORED  #蹇界暐涓虹┖
+
+
 # PageHelper鍒嗛〉鎻掍欢
-pagehelper: 
+pagehelper:
   helperDialect: mysql
   supportMethodsArguments: true
-  params: count=countSql 
+  params: count=countSql
 
 # Swagger閰嶇疆
 swagger:
@@ -135,7 +138,7 @@
   pathMapping: /
 
 # 闃叉XSS鏀诲嚮
-xss: 
+xss:
   # 杩囨护寮�鍏�
   enabled: true
   # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛�
diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml
index 6710263..2df5a82 100644
--- a/ruoyi-admin/src/main/resources/logback.xml
+++ b/ruoyi-admin/src/main/resources/logback.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!-- 鏃ュ織瀛樻斁璺緞 -->
-	<property name="log.path" value="D" />
+	<property name="log.path" value="/lihu/opo/logs" />
     <!-- 鏃ュ織杈撳嚭鏍煎紡 -->
 	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
index 426a4a5..0518aba 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
@@ -266,6 +266,16 @@
         //淇濆瓨鎬荤◣鍓嶉噾棰濓紙鐢ㄤ簬鏇存柊fund琛ㄩ噷鐨勶級
         BigDecimal pretaxcost = BigDecimal.valueOf(0.00);
         for (ServiceFunddetail serviceFunddetail : serviceFunddetails) {
+            if (StringUtils.isEmpty(serviceFunddetail.getIdcardno())) {
+                //濡傛灉韬唤璇佸彿涓虹┖锛屽氨涓嶇敤鏌ヤ簡锛屽彲鑳芥槸鍖婚櫌鐨勮褰�
+                if (StringUtils.isEmpty(serviceFunddetail.getServicesscopename()) || !serviceFunddetail.getServicesscopename().contains("绋庡悗")) {
+                    serviceFunddetail.setTaxedamount(serviceFunddetail.getAmount());
+                } else {
+                    serviceFunddetail.setAmount(serviceFunddetail.getTaxedamount());
+                }
+                this.updateById(serviceFunddetail);
+            }
+
             //鑾峰彇褰撴湀鐨勭涓�澶�
             Date firstDay = Date.from(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay(ZoneId.systemDefault()).toInstant());
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -302,7 +312,7 @@
                     continue;
                 }
             }
-            logger.info("taxSum鍏ュ弬鏁版嵁锛歿}",  taxSum);
+            logger.info("taxSum鍏ュ弬鏁版嵁锛歿}", taxSum);
             if (StringUtils.isEmpty(serviceFunddetail.getServicesscopename()) || !serviceFunddetail.getServicesscopename().contains("绋庡悗")) {
                 // 濡備綍绋庡墠閲戦涓嶄负绌猴紝鐢ㄤ箣鍓嶇殑鈥濇�荤◣鍓嶉噾棰濃�滐紝鍔犱笂褰撳墠鈥濈◣鍓嶉噾棰濃��
                 BigDecimal newAmounts = BigDecimal.valueOf(taxSum.getAmounts()).add(BigDecimal.valueOf(serviceFunddetail.getAmount()));

--
Gitblit v1.9.3