wanghongzhi hai 1 ano
pai
achega
4ae55acd30

+ 1 - 2
easydo-chengfa/pom.xml

@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>easydo.technology</groupId>
         <artifactId>easydo</artifactId>

+ 53 - 0
easydo-chengfa/src/main/java/easydo/technology/controller/ApiController.java

@@ -5,6 +5,7 @@ import easydo.technology.enums.ChengfaEnum;
 import easydo.technology.exception.BizException;
 import easydo.technology.model.*;
 import easydo.technology.model.vo.ContractVo;
+import easydo.technology.model.vo.GLDMessage;
 import easydo.technology.model.vo.MDMDept;
 import easydo.technology.model.vo.MDMSupplier;
 import easydo.technology.model.vo.MDMUser;
@@ -12,6 +13,7 @@ import easydo.technology.system.domain.SysDept;
 import easydo.technology.utils.LocalDateUtil;
 import easydo.technology.utils.StringUtil;
 
+import org.springframework.beans.BeanUtils;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.crypto.password.PasswordEncoder;
@@ -28,6 +30,8 @@ import cn.hutool.core.date.LocalDateTimeUtil;
 import javax.annotation.Resource;
 import javax.sql.DataSource;
 import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -330,4 +334,53 @@ public class ApiController {
         }
     }
 
+    @RequestMapping(value = "/message/push")
+    public Object pushMessage(@RequestBody GLDMessage gldMessage) throws Exception {
+        String token = gldMessage.getToken();
+        String type = gldMessage.getRefType();
+        String instanceId = gldMessage.getInstanceId();
+        if (!TOKEN.equals(token)) {
+            return new ResponseEntity<>("no auth", HttpStatus.OK);
+        }
+        if (StringUtil.isEmpty(gldMessage.getReceiveUserCode()) || StringUtil.isEmpty(instanceId)) {
+            return new ResponseEntity<>("参数无效", HttpStatus.OK);
+        }
+        Connection connection = null;
+        String businessId = "";
+        ResultSet resultSet = null;
+        try {
+            connection = dataSource.getConnection();
+            Statement statement = connection.createStatement();
+            Message message = new Message();
+            BeanUtils.copyProperties(gldMessage, message);
+
+            SysUser receiveUser = new SysUser();
+            receiveUser.setCode(gldMessage.getReceiveUserCode());
+            receiveUser = jdbcClient.getJdbcModel(receiveUser, connection);
+            message.setReceiveUserId(receiveUser.getUserId());
+            message.setReceiveUserName(receiveUser.getNickName());
+
+            if (type.equals(ChengfaEnum.BUS_APPROVE_TYPE_PURCHASE_PLAN.getValue())
+                    || type.equals(ChengfaEnum.BUS_APPROVE_TYPE_PURCHASE.getValue())) {
+                String sql = "select id from " + type + " where process_instance_id = '" + instanceId + "' limit 1";
+                resultSet = statement.executeQuery(sql);
+
+            } else {
+                String sql = "select purchase_id from " + type + " where process_instance_id = '" + instanceId
+                        + "' limit 1";
+                resultSet = statement.executeQuery(sql);
+            }
+            while (resultSet.next()) {
+                businessId = resultSet.getString(1);
+            }
+            message.setRefId(businessId);
+            jdbcClient.jdbcInsert(message, connection);
+
+            return new ResponseEntity<>(message, HttpStatus.OK);
+        } catch (Exception e) {
+            throw new BizException(e.getMessage());
+        } finally {
+            jdbcClient.finallyExecute(connection);
+        }
+    }
 }

+ 2 - 2
easydo-chengfa/src/main/java/easydo/technology/controller/MessageController.java

@@ -19,7 +19,7 @@ import easydo.technology.model.Message;
 @RestController
 @RequestMapping("/message")
 public class MessageController {
-      @Resource
+    @Resource
     JdbcClient jdbcClient;
     @Resource
     DataSource dataSource;
@@ -30,7 +30,7 @@ public class MessageController {
         try {
             connection = dataSource.getConnection();
             Map<String, Object> page = jdbcClient.getJdbcPage(map, Message.class, connection);
-           
+
             return new ResponseEntity<>(page, HttpStatus.OK);
         } catch (Exception e) {
             throw new BizException(e.getMessage());

+ 3 - 2
easydo-chengfa/src/main/java/easydo/technology/controller/PurchaseContractController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.sql.DataSource;
 import java.sql.Connection;
@@ -49,8 +50,8 @@ public class PurchaseContractController {
     }
 
     @GetMapping(value = "/download")
-    public void test(HttpServletResponse response, @RequestParam String objectId,
+    public void test(HttpServletResponse response,HttpServletRequest request, @RequestParam String objectId,
             @RequestParam(required = false) String fileName) throws Exception {
-        gldCostService.getContractFile(objectId, fileName, response);
+        gldCostService.getContractFile(objectId, fileName,request, response);
     }
 }

+ 3 - 2
easydo-chengfa/src/main/java/easydo/technology/controller/TestController.java

@@ -16,6 +16,7 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.sql.DataSource;
 
@@ -113,7 +114,7 @@ public class TestController {
     }
 
     @GetMapping(value = "/test")
-    public void test(HttpServletResponse response, @RequestParam String objectId,
+    public void test(HttpServletResponse response,HttpServletRequest request, @RequestParam String objectId,
             @RequestParam(required = false) String fileName) throws Exception {
         String url = "http://jsf-int.glodon.com/cost-management/openapi/attachments/" + objectId;
         Map<String, String> header = new HashMap<>();
@@ -123,7 +124,7 @@ public class TestController {
         if (StringUtil.isEmpty(fileName)) {
             fileName = "contract.pdf";
         }
-        HttpClientUtil.sendGETWithHeader_OutputStream(url, header, response, fileName);
+        HttpClientUtil.sendGETWithHeader_OutputStream(url, header,request, response, fileName);
 
     }
 

+ 11 - 0
easydo-chengfa/src/main/java/easydo/technology/model/vo/GLDMessage.java

@@ -0,0 +1,11 @@
+package easydo.technology.model.vo;
+
+import easydo.technology.model.Message;
+import lombok.Data;
+
+@Data
+public class GLDMessage extends Message{
+    private String instanceId;
+    private String receiveUserCode;
+    private String token;
+}

+ 3 - 2
easydo-chengfa/src/main/java/easydo/technology/service/GLDCostService.java

@@ -18,6 +18,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 @Component
@@ -125,7 +126,7 @@ public class GLDCostService {
         return list;
     }
 
-    public void getContractFile(String objectId, String fileName,HttpServletResponse response) {
+    public void getContractFile(String objectId, String fileName,HttpServletRequest request,HttpServletResponse response) {
         String url = costHost + costContractFile + objectId;
         Map<String, String> header = new HashMap<>();
         header.put("Authorization", costAuthorization);
@@ -133,7 +134,7 @@ public class GLDCostService {
         if (StringUtil.isEmpty(fileName)) {
             fileName = "contract.pdf";
         }
-        HttpClientUtil.sendGETWithHeader_OutputStream(url, header, response, fileName);
+        HttpClientUtil.sendGETWithHeader_OutputStream(url, header,request, response, fileName);
     }
 
     // public static void main(String[] args) {

+ 10 - 3
easydo-chengfa/src/main/java/easydo/technology/util/HttpClientUtil.java

@@ -11,9 +11,11 @@ import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.URLEncoder;
 import java.text.MessageFormat;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 public class HttpClientUtil {
@@ -325,7 +327,7 @@ public class HttpClientUtil {
     }
 
     public static void sendGETWithHeader_OutputStream(String apiUrl, Map<String, String> map,
-            HttpServletResponse response,String fileName) {
+            HttpServletRequest request,HttpServletResponse response, String fileName) {
         int byteread = 0;
         try {
             // 建立连接
@@ -353,9 +355,14 @@ public class HttpClientUtil {
             if (HttpURLConnection.HTTP_OK == http_StatusCode) {
 
                 InputStream inStream = httpURLConnection.getInputStream();
-                System.out.println(inStream.toString());
+                response.setContentType("application/pdf");
+                response.setCharacterEncoding("UTF-8");
+                if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) {
+                    fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");// firefox浏览器
+                } else {
+                    fileName = URLEncoder.encode(fileName, "UTF-8");// 其他浏览器包括IE浏览器和google浏览器
+                }
                 response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
-                response.setContentType("application/octet-stream");
 
                 byte[] buffer = new byte[1204];
                 while ((byteread = inStream.read(buffer)) != -1) {

+ 3 - 1
easydo-chengfa/src/main/resources/config/application.yml

@@ -67,4 +67,6 @@ pagehelper:
 
 #邮箱验证码有效时间/秒
 code:
-  expiration: 300
+  expiration: 300
+
+#服务器root,@dmin#DC7

+ 18 - 25
easydo-chengfa/src/main/resources/logback.xml

@@ -5,11 +5,19 @@
     <property name="log.pattern" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)" />
 
     <!--输出到控制台-->
-    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+    <appender name="console" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>logs/easydo-chengfa.log</file>
         <encoder>
             <pattern>${log.pattern}</pattern>
             <charset>${log.charset}</charset>
         </encoder>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天滚动生成日志文件 -->
+            <fileNamePattern>logs/easydo-chengfa.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 保留30天的日志 -->
+            <maxHistory>30</maxHistory>
+        </rollingPolicy>
     </appender>
 
     <!--普通日志输出到控制台-->
@@ -17,29 +25,14 @@
         <appender-ref ref="console" />
     </root>
 
-    <!--监控sql日志输出 -->
-    <logger name="jdbc.sqlonly" level="OFF" additivity="false">
-        <appender-ref ref="console" />
-    </logger>
-
-    <logger name="jdbc.resultset" level="OFF" additivity="false">
-        <appender-ref ref="console" />
-    </logger>
-
-    <!--  如想看到表格数据,将OFF改为INFO  -->
-    <logger name="jdbc.resultsettable" level="OFF" additivity="false">
-        <appender-ref ref="console" />
-    </logger>
-
-    <logger name="jdbc.connection" level="OFF" additivity="false">
-        <appender-ref ref="console" />
-    </logger>
-
-    <logger name="jdbc.sqltiming" level="OFF" additivity="false">
-        <appender-ref ref="console" />
-    </logger>
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+            <charset>${log.charset}</charset>
+        </encoder>
+    </appender>
 
-    <logger name="jdbc.audit" level="OFF" additivity="false">
-        <appender-ref ref="console" />
-    </logger>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+    </root>
 </configuration>