Browse Source

erp增加通过单据编号、企业uu来判断单据是否已经上传到平台

hejq 8 years ago
parent
commit
ec306064af

+ 5 - 4
src/main/java/com/uas/platform/b2b/erp/controller/OrderSendStatusController.java

@@ -29,14 +29,15 @@ public class OrderSendStatusController {
     /**
      * 通过订单的相关信息获取传输到平台的信息
      *
-     * @param data
-     * @param callerName
+     * @param data 封装的OrderSendStatusColumn Json数据
+     * @param callerName 平台对应的来源表
      * @return
      */
     @RequestMapping(method = RequestMethod.POST)
-    public List<OrderSendStatusColumn> getByOrderInfo(@RequestParam("data") String data, @RequestParam("callerName") String callerName) throws UnsupportedEncodingException {
+    public List<OrderSendStatusColumn> getByOrderInfo(@RequestParam("data") String data, @RequestParam("callerName") String callerName,
+                                                      @RequestParam("role") String role) throws UnsupportedEncodingException {
         String jsonStr = URLDecoder.decode(data, "UTF-8");
         List<OrderSendStatusColumn> columns =  FlexJsonUtils.fromJsonArray(jsonStr, OrderSendStatusColumn.class);
-        return orderService.getOrderInfo(columns, callerName);
+        return orderService.getOrderInfo(columns, callerName, role);
     }
 }

+ 11 - 0
src/main/java/com/uas/platform/b2b/erp/model/Role.java

@@ -0,0 +1,11 @@
+package com.uas.platform.b2b.erp.model;
+
+/**
+ * 当前企业在单据中的角色
+ * 
+ * @author hejq
+ * @time 创建时间:2018年1月3日
+ */
+public enum Role {
+    BUYER, SELLER, PLAIN
+}

+ 10 - 1
src/main/java/com/uas/platform/b2b/erp/service/OrderSendStatusService.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.erp.service;
 
 import com.uas.platform.b2b.erp.model.OrderSendStatusColumn;
 
+import java.io.UnsupportedEncodingException;
 import java.util.List;
 
 /**
@@ -9,5 +10,13 @@ import java.util.List;
  */
 public interface OrderSendStatusService {
 
-    List<OrderSendStatusColumn> getOrderInfo(List<OrderSendStatusColumn> columns, String callerName);
+    /**
+     * 通过相关条件查询平台的id
+     *
+     * @param columns 查询条件list
+     * @param tableName 平台的来源表
+     * @param role 当前角色
+     * @return
+     */
+    List<OrderSendStatusColumn> getOrderInfo(List<OrderSendStatusColumn> columns, String tableName, String role) throws UnsupportedEncodingException;
 }

+ 18 - 10
src/main/java/com/uas/platform/b2b/erp/service/impl/OrderSendStatusServiceImpl.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.erp.service.impl;
 
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.erp.model.OrderSendStatusColumn;
+import com.uas.platform.b2b.erp.model.Role;
 import com.uas.platform.b2b.erp.service.OrderSendStatusService;
 import com.uas.platform.b2b.erp.support.ErpBufferedLogger;
 import com.uas.platform.b2b.support.SystemSession;
@@ -10,6 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -25,17 +28,22 @@ public class OrderSendStatusServiceImpl implements OrderSendStatusService {
     private CommonDao commonDao;
 
     @Override
-    public List<OrderSendStatusColumn> getOrderInfo(List<OrderSendStatusColumn> columns, String callerName) {
-        String sql = null;
+    public List<OrderSendStatusColumn> getOrderInfo(List<OrderSendStatusColumn> columns, String tableName, String role) throws UnsupportedEncodingException {
         List<OrderSendStatusColumn> columnList = new ArrayList<OrderSendStatusColumn>();
-        if(callerName.equalsIgnoreCase("purcAccept")) {
-            for(OrderSendStatusColumn column : columns) {
-                List<OrderSendStatusColumn> statusColumnList = new ArrayList<OrderSendStatusColumn>();
-                sql = "select distinct pa_id b2b_id," + column.getId() + " as id, pa_code code id from purc$accept where pa_enuu = " + SystemSession.getUser().getEnterprise().getUu()
-                        + " and (pa_erpid=" + column.getId() + "or pa_code = '" + column.getCode() + "')";
-                statusColumnList =  commonDao.query(sql, OrderSendStatusColumn.class);
-                if(!CollectionUtils.isEmpty(statusColumnList))
-                    columnList.add(statusColumnList.get(0));
+        for (OrderSendStatusColumn column : columns) {
+            List<OrderSendStatusColumn> statusColumnList = new ArrayList<OrderSendStatusColumn>();
+            String sql = "select code,b2b_id,erp_id id from v$erp$orderid where code = '" + column.getCode()
+                    + "' and sourcetable = '" + URLDecoder.decode(tableName, "UTF-8") + "' ";
+            if (role.equals(Role.BUYER.name())) {
+                sql = sql + "and custuu = " + SystemSession.getUser().getEnterprise().getUu();
+            } else if (role.equals(Role.SELLER.name())) {
+                sql = sql + "and venduu = " + SystemSession.getUser().getEnterprise().getUu();
+            }
+            sql = sql + " group by custuu,code,b2b_id,erp_id having count(1) = 1";
+            statusColumnList =  commonDao.query(sql, OrderSendStatusColumn.class);
+            if (!CollectionUtils.isEmpty(statusColumnList)) {
+                statusColumnList.get(0).setId(column.getId());
+                columnList.add(statusColumnList.get(0));
             }
         }
         return columnList;