ソースを参照

B2B后台管理日志查询方法更新调整

hejq 7 年 前
コミット
c82cbc54ef

+ 1 - 1
pom.xml

@@ -9,7 +9,7 @@
 	<artifactId>b2bManage</artifactId>
 	<packaging>war</packaging>
 	<version>0.0.1</version>
-	<name>platform-home Maven Webapp</name>
+	<name>b2b-manage Maven Webapp</name>
 	<url>http://maven.apache.org</url>
 	<dependencies>
 		<!-- spring-webmvc -->

+ 0 - 2
src/main/java/com/uas/platform/b2bManage/controller/EnterpriseCotroller.java

@@ -4,7 +4,6 @@ import com.uas.platform.b2bManage.core.support.SystemSession;
 import com.uas.platform.b2bManage.model.AccessToken;
 import com.uas.platform.b2bManage.model.EnterpriseBaseInfo;
 import com.uas.platform.b2bManage.model.UseType;
-import com.uas.platform.b2bManage.model.User;
 import com.uas.platform.b2bManage.page.PageInfo;
 import com.uas.platform.b2bManage.page.PageParams;
 import com.uas.platform.b2bManage.service.AccessTokenService;
@@ -24,7 +23,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.rmi.AccessException;
-import java.util.Arrays;
 
 /**
  * 企业数据查询接口

+ 14 - 2
src/main/java/com/uas/platform/b2bManage/controller/LogsController.java

@@ -1,14 +1,14 @@
 package com.uas.platform.b2bManage.controller;
 
-import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2bManage.model.ErrorLog;
+import com.uas.platform.b2bManage.model.NotExistOrders;
+import com.uas.platform.b2bManage.model.NotExistProduct;
 import com.uas.platform.b2bManage.model.UseType;
 import com.uas.platform.b2bManage.service.ErrorLogService;
 import com.uas.platform.b2bManage.service.UseLogService;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.util.AgentUtils;
-import org.apache.commons.lang.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Sort;
@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * 日志查询接口
@@ -68,4 +69,15 @@ public class LogsController {
         String result = logService.findParameters(id);
         return new ModelMap("content", result);
     }
+
+    /**
+     * 通过sign查询不存在的单据信息
+     *
+     * @param sign 标识
+     * @return
+     */
+    @RequestMapping(value = "/notExistData", method = RequestMethod.GET)
+    public ModelMap findNotExistDataBySign(String sign, String msg) {
+        return logService.findNotExistDataBySign(sign, msg);
+    }
 }

+ 25 - 0
src/main/java/com/uas/platform/b2bManage/dao/NotExistOrdersDao.java

@@ -0,0 +1,25 @@
+package com.uas.platform.b2bManage.dao;
+
+import com.uas.platform.b2bManage.model.NotExistOrders;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * ERP不存在单据的信息
+ *
+ * @author hejq
+ * @date 2018-07-03
+ */
+@Repository
+public interface NotExistOrdersDao extends JpaRepository<NotExistOrders, Long> {
+
+    /**
+     * 通过uuid查询关联信息
+     *
+     * @param sign 标识
+     * @return
+     */
+    List<NotExistOrders> findBySign(String sign);
+}

+ 25 - 0
src/main/java/com/uas/platform/b2bManage/dao/NotExistProductDao.java

@@ -0,0 +1,25 @@
+package com.uas.platform.b2bManage.dao;
+
+import com.uas.platform.b2bManage.model.NotExistProduct;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * ERP不存在的物料信息
+ *
+ * @author hejq
+ * @date 2018-07-03
+ */
+@Repository
+public interface NotExistProductDao extends JpaRepository<NotExistProduct, Long> {
+
+    /**
+     * 通过uuid查询关联信息
+     *
+     * @param sign 标识
+     * @return
+     */
+    List<NotExistProduct> findBySign(String sign);
+}

+ 14 - 0
src/main/java/com/uas/platform/b2bManage/model/ErrorLog.java

@@ -66,6 +66,12 @@ public class ErrorLog implements Serializable {
     @Column(name = "log_enname")
     private String enName = "";
 
+    /**
+     * 标识
+     */
+    @Column(name = "log_uuid")
+    private String uuid = "";
+
     public Long getId() {
         return id;
     }
@@ -121,4 +127,12 @@ public class ErrorLog implements Serializable {
     public void setEnName(String enName) {
         this.enName = enName;
     }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
 }

+ 149 - 0
src/main/java/com/uas/platform/b2bManage/model/NotExistOrders.java

@@ -0,0 +1,149 @@
+package com.uas.platform.b2bManage.model;
+
+import com.uas.platform.core.model.Status;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 记录验收单等查询对应采购单明细不存在的单号,序号
+ *
+ * Created by hejq on 2018-06-19.
+ */
+@Table(name = "erp$orders", indexes = {
+        @Index(name = "erp$orders_sign", columnList = "or_sign")
+})
+@Entity
+public class NotExistOrders implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @Column(name = "or_id")
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private Long id;
+
+    /**
+     * 单据编号
+     */
+    @Column(name = "or_code")
+    private String code;
+
+    /**
+     * 企业UU
+     */
+    @Column(name = "or_enuu")
+    private Long enUU;
+
+    /**
+     * 明细序号,默认0
+     */
+    @Column(name = "or_detno")
+    private Short detno = 0;
+
+    /**
+     * 记录日期
+     */
+    @Column(name = "or_date")
+    private Date date;
+
+    /**
+     * 处理状态
+     * <pre>
+     *     202: 待下载
+     *     203: 已下载
+     * </pre>
+     */
+    @Column(name = "or_status")
+    private Integer status;
+
+    /**
+     * 单据类型
+     * <pre>
+     *     saleItem: 销售订单明细
+     *     makeItem: 委外订单明细
+     *     saleMain: 销售订单
+     *     makeMain: 委外订单
+     * </pre>
+     */
+    @Column(name = "or_type")
+    private String type;
+
+    /**
+     * 标识,用于查询信息
+     */
+    @Column(name = "or_sign")
+    private String sign;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public Short getDetno() {
+        return detno;
+    }
+
+    public void setDetno(Short detno) {
+        this.detno = detno;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getSign() {
+        return sign;
+    }
+
+    public void setSign(String sign) {
+        this.sign = sign;
+    }
+
+}

+ 155 - 0
src/main/java/com/uas/platform/b2bManage/model/NotExistProduct.java

@@ -0,0 +1,155 @@
+package com.uas.platform.b2bManage.model;
+
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 这张表用来记录ERP订单上传过程中未存在的物料信息
+ *
+ * Created by hejq on 2018-03-14.
+ */
+@Table(name = "erp$products", indexes = {
+        @Index(name = "erp$products_sign", columnList = "pr_sign")
+})
+@Entity
+public class NotExistProduct implements Serializable {
+
+    /**
+     * default serialVersionUID
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "pr_id")
+    private Long id;
+
+    /**
+     * 物料编号
+     */
+    @Column(name = "pr_code")
+    private String code;
+
+    /**
+     * 企业
+     */
+    @Column(name = "pr_enuu")
+    private Long enuu;
+
+    /**
+     * 下载状态<br>
+     *     <pro>
+     *         203: 已下载, 202 未下载
+     *     </pro>
+     */
+    @Column(name = "pr_status")
+    private Integer status;
+
+    /**
+     * 单据日期
+     */
+    @Column(name = "pr_date")
+    private Date date;
+
+    /**
+     * 物料来源,哪个单据发现的
+     */
+    @Column(name = "pr_source")
+    private String source;
+
+    /**
+     * 单据编号
+     */
+    @Column(name = "pr_sourcecode")
+    private String sourceCode;
+
+    /**
+     * 明细序号
+     */
+    @Column(name = "pr_detno")
+    private Short detno = 0;
+
+    /**
+     * 标识符,能通过异常查询出来
+     */
+    @Column(name = "pr_sign")
+    private String sign;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Long getEnuu() {
+        return enuu;
+    }
+
+    public void setEnuu(Long enuu) {
+        this.enuu = enuu;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public String getSourceCode() {
+        return sourceCode;
+    }
+
+    public void setSourceCode(String sourceCode) {
+        this.sourceCode = sourceCode;
+    }
+
+    public Short getDetno() {
+        return detno;
+    }
+
+    public void setDetno(Short detno) {
+        this.detno = detno;
+    }
+
+    public String getSign() {
+        return sign;
+    }
+
+    public void setSign(String sign) {
+        this.sign = sign;
+    }
+
+}

+ 14 - 0
src/main/java/com/uas/platform/b2bManage/service/ErrorLogService.java

@@ -1,8 +1,13 @@
 package com.uas.platform.b2bManage.service;
 
 import com.uas.platform.b2bManage.model.ErrorLog;
+import com.uas.platform.b2bManage.model.NotExistOrders;
+import com.uas.platform.b2bManage.model.NotExistProduct;
 import com.uas.platform.core.model.PageInfo;
 import org.springframework.data.domain.Page;
+import org.springframework.ui.ModelMap;
+
+import java.util.List;
 
 /**
  * B2B接口错误日志记录
@@ -29,4 +34,13 @@ public interface ErrorLogService {
      * @return
      */
     String findParameters(Long id);
+
+    /**
+     * 通过标识和类型查询信息
+     *
+     * @param sign 标识
+     * @param msg 参数
+     * @return
+     */
+    ModelMap findNotExistDataBySign(String sign, String msg);
 }

+ 0 - 1
src/main/java/com/uas/platform/b2bManage/service/UserService.java

@@ -2,7 +2,6 @@ package com.uas.platform.b2bManage.service;
 
 import com.uas.platform.b2bManage.model.User;
 import javassist.NotFoundException;
-import org.springframework.ui.ModelMap;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;

+ 0 - 1
src/main/java/com/uas/platform/b2bManage/service/impl/AccessTokenServiceImpl.java

@@ -3,7 +3,6 @@ package com.uas.platform.b2bManage.service.impl;
 import com.uas.platform.b2bManage.core.support.SystemSession;
 import com.uas.platform.b2bManage.dao.AccessTokenDao;
 import com.uas.platform.b2bManage.model.AccessToken;
-import com.uas.platform.b2bManage.model.User;
 import com.uas.platform.b2bManage.service.AccessTokenService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 32 - 0
src/main/java/com/uas/platform/b2bManage/service/impl/ErrorLogServiceImpl.java

@@ -1,8 +1,14 @@
 package com.uas.platform.b2bManage.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2bManage.core.util.StringUtils;
 import com.uas.platform.b2bManage.dao.ErrorLogDao;
+import com.uas.platform.b2bManage.dao.NotExistOrdersDao;
+import com.uas.platform.b2bManage.dao.NotExistProductDao;
 import com.uas.platform.b2bManage.model.ErrorLog;
+import com.uas.platform.b2bManage.model.NotExistOrders;
+import com.uas.platform.b2bManage.model.NotExistProduct;
 import com.uas.platform.b2bManage.service.ErrorLogService;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.persistence.criteria.CriterionExpression;
@@ -14,12 +20,14 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.ui.ModelMap;
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import java.util.Date;
+import java.util.List;
 
 /**
  * B2B接口错误日志记录
@@ -40,6 +48,11 @@ public class ErrorLogServiceImpl implements ErrorLogService {
     @Autowired
     private JdbcTemplate jdbcTemplate;
 
+    @Autowired
+    private NotExistOrdersDao notExistOrdersDao;
+
+    @Autowired
+    private NotExistProductDao notExistProductDao;
 
     /**
      * 通过关键词分页查询B2B接口错误日志
@@ -90,4 +103,23 @@ public class ErrorLogServiceImpl implements ErrorLogService {
     public String findParameters(Long id) {
         return jdbcTemplate.queryForObject("select log_parameters from log$error$detail where log_logid = " + id, String.class);
     }
+
+    /**
+     * 通过标识和类型查询信息
+     *
+     * @param sign 标识
+     * @param msg  参数
+     * @return
+     */
+    @Override
+    public ModelMap findNotExistDataBySign(String sign, String msg) {
+        // 未找到物料信息
+        String NOT_EXIST_PRODUCTS = "物料";
+        if (msg.contains(NOT_EXIST_PRODUCTS)) {
+            return new ModelMap("content", JSON.toJSONString(notExistProductDao.findBySign(sign)));
+        } else {
+            return new ModelMap("content", JSON.toJSONString(notExistOrdersDao.findBySign(sign)));
+        }
+    }
+
 }

+ 3 - 3
src/main/webapp/WEB-INF/views/normal/enterprise.html

@@ -42,10 +42,10 @@
 	#loadingImg {
 		position: absolute;
 		cursor: wait;
-		left: 50%;
+		left: 45%;
 		top: 50%;
-		width: 100%;
-        height: 100%;
+		width: auto;
+        height: auto;
 	}
 </style>
 <div id="loadingDiv">

+ 3 - 3
src/main/webapp/WEB-INF/views/normal/logs.html

@@ -42,10 +42,10 @@
 	#loadingImg {
 		position: absolute;
 		cursor: wait;
-		left: 50%;
+		left: 45%;
 		top: 50%;
-		width: 100%;
-        height: 100%;
+		width: auto;
+        height: auto;
 	}
     #logList-body {
         word-break: break-all;

+ 33 - 1
src/main/webapp/resources/js/common/log.js

@@ -38,17 +38,29 @@ function getLogList(count, page, keyword, fromDate, endDate) {
             for (var i = 0; i < logList.length; i++) {
                 var trow = getDataRow(logList[i], i); //定义一个方法,返回tr数据
                 tbody.appendChild(trow);
+                // 查询错误详情
                 (function(i) {
                     $("#para_detail_" + logList[i].id ).click(function () {
                         getPara(logList[i].id, logList[i].enName, logList[i].url);
                         $('#loadingDiv').show();
                     });
                 })(i);
+                // 查询参数详情
                 (function(i) {
                     $("#pa_detail_" + logList[i].id ).click(function () {
                         getDetail(logList[i].detail, logList[i].enName);
+                        $('#loadingDiv').show();
                     });
                 })(i);
+                // 查询错误列表
+                (function(i) {
+                    if (logList[i].uuid != null && logList[i].uuid != "") {
+                        $("#not_exit_data_" + logList[i].id ).click(function () {
+                            getNotExistData(logList[i].uuid, logList[i].msg, logList[i].enName);
+                            $('#loadingDiv').show();
+                        });
+                    }
+                })(i);
             }
 
             // 点击搜索
@@ -118,6 +130,21 @@ function getDetail(detail, name) {
     $('#paraDetail').modal('show');
 }
 
+/**
+ * 获取错误列表
+ */
+function getNotExistData(uuid, msg, name) {
+    $.get('log/notExistData', {sign: uuid, msg: msg}, function (data) {
+        $('#para-content').empty();
+        $('#para-title').empty();
+        $("<p style='font-size: 16px; font-weight: bold'>").text(name).appendTo("#para-title");
+        var result = JSON.stringify(JSON.parse(data.content), null, 4);
+        $("<pre>").html(syntaxHighlight(result)).appendTo("#para-content");
+        $('#loadingDiv').hide();
+        $('#paraDetail').modal('show');
+    });
+}
+
 function syntaxHighlight(json) {
     if (typeof json != 'string') {
         json = JSON.stringify(json, undefined, 2);
@@ -177,9 +204,14 @@ function getDataRow(log, i) {
 
     var msgCell = document.createElement('td'); //msg
     msgCell.setAttribute("class", "text-center");
-    msgCell.setAttribute("title", log.msg);
     msgCell.setAttribute("style", "max-height: 400px; overflow-y: auto;");
     msgCell.innerHTML = log.msg; //填充数据
+    if (log.uuid != null && log.uuid != "") {
+        msgCell.setAttribute("title", "查看详情");
+        msgCell.setAttribute("id", "not_exit_data_" + log.id);
+        var button = "<a style='color: red'><i class='icon-edit'>more>></i></a>";
+        msgCell.innerHTML += button;
+    }
     row.appendChild(msgCell);
 
     var detailCell = document.createElement('td'); //detail