Browse Source

5-16 库存取整 订单处理

zhaoy 6 years ago
parent
commit
b6d06c2a91

+ 40 - 18
src/main/java/com/uas/erp/schedular/diymall/task/DiymallApplyTask.java

@@ -4,12 +4,14 @@ import com.sun.deploy.net.URLEncoder;
 import com.uas.erp.schedular.b2b.domain.Customer;
 import com.uas.erp.schedular.diymall.domain.*;
 import com.uas.erp.schedular.finance.mq.HttpsClientRequestFactory;
+import com.uas.erp.schedular.mall.domain.Stock;
 import com.uas.erp.schedular.publicproduct.domain.Prod;
 import com.uas.erp.schedular.task.support.Method;
 import com.uas.erp.schedular.task.support.Role;
 import com.uas.erp.schedular.task.support.TaskMapping;
 import com.uas.erp.schedular.util.CollectionUtil;
 import com.uas.erp.schedular.util.ContextHolder;
+import com.uas.erp.schedular.util.ObjectUtil;
 import com.usoft.security.utils.OpenApiSignUtil;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
@@ -126,11 +128,12 @@ public class DiymallApplyTask extends AbstractTask {
         post("/erp/loan/back", dataWrap(idStr));
     }
 
-    private final static String SECRETKEY = "c910666dcf0f4ff8a0398aa68adc5bf3";
-    private final static String SECRETUU = "10044423";
+    private final static String SECRETKEY = "c49f7be6a861461ab951e55030055a5c";
+    private final static String SECRETUU = "50000089";
     private final static String BASEPATH = "https://malltraderest.uuzcc.cn";
     /**
      * 客户在商城店铺对怡海能达下订单,订单信息直接同步至怡海能达系统
+     * 默认每天2:00触发
      */
     @TaskMapping(title = "订单同步", cron = "0 0 2 * * ?")
     public void getOrdersByPage() throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
@@ -141,6 +144,11 @@ public class DiymallApplyTask extends AbstractTask {
         Integer pageSize = 10;  // 每页条数
         Integer pageNumber = 1; // 当前页码
 
+        int data = jdbcTemplate.getInt("select data from CONFIGS where code = 'mallSaleOrder' and caller = 'mallOrder!YHND'");
+        if(0 == data){
+            updateTime = 0L;
+        }
+
         if(materialCod != ""){
             return;
         }
@@ -151,9 +159,13 @@ public class DiymallApplyTask extends AbstractTask {
         // 按页数拿数据
         GetOrdersByPage getOrdersByPage = null;
         List<Order> orders = null;
+        Integer page = totalCount/pageSize;
+        if(totalCount/pageSize < 1){
+            page = 1;
+        }
         tag:
-        for(int i = 0 ; i < totalCount/pageSize ; i ++ ){
-            getOrdersByPage = gstOrderList(url,materialCod,updateTime,pageSize,i);
+        for(int i = 0 ; i < page ; i ++ ){
+            getOrdersByPage = gstOrderList(url,materialCod,updateTime,totalCount,1);
             orders = getOrdersByPage.getOrder();
 
             if(StringUtils.isEmpty(orders)) {
@@ -169,20 +181,27 @@ public class DiymallApplyTask extends AbstractTask {
                 Order order = orders.get(j);
                 order.getEnuu();
 
-                //customer  cu_uu cu_name
-                Customer customer = jdbcTemplate.queryForBean("select * from CUSTOMER where CU_UU = ? and CU_AUDITSTATUS = '已审核'",
-                        Customer.class, order.getEnuu());
-
                 // 取销售id 和销售编号
                 int saleId = jdbcTemplate.getInt("select sale_seq.nextval from sale");
                 String code = jdbcTemplate.generateCode("sale",2);
 
-                Map<String, Object> payment = jdbcTemplate.queryForMap("select pa_code,pa_name from customer  left join payments on CU_PAYMENTID = pa_id where cu_code = 'C18060102'");
+                //customer  cu_uu cu_name
+                Customer customer = jdbcTemplate.queryForBean("select * from CUSTOMER where CU_UU = ? and CU_AUDITSTATUS = '已审核'",
+                        Customer.class, order.getEnuu());
 
+                Map<String, Object> payment = jdbcTemplate.queryForMap("select PA_CODE,PA_NAME from customer  left join payments on CU_PAYMENTID = pa_id where cu_code = 'C18060102'");
+                Object pa_code  = "";
+                Object pa_name = "";
+                if(!ObjectUtils.isEmpty(payment)){
+                    pa_code = payment.get("PA_CODE");
+                    pa_name = payment.get("PA_NAME");
+                }
                 String sql = "insert into SALE (SA_ID , SA_CODE , SA_DATE , SA_ORDERTYPE , SA_CURRENCY , SA_RATE , SA_CUSTCODE , SA_CUSTNAME , SA_APCUSTCODE , SA_APCUSTNAME ," +
-                        "SA_PAYMENTSCODE , SA_PAYMENTS , SA_SELLER , SA_DEPARTMENTCODE , SA_DEPARTMENTNAME , SA_TOPLACE , SA_POCODE , SA_SENDSTATUS , SA_EMNAME , SA_RECORDDATE ," +
-                        "SA_AUDITMAN , SA_AUDITDATE , SA_UPDATEMAN , SA_UPDATEDATE , sa_need1 , sa_need2) values ('" + saleId + "','"+ code + "',sysdate,'" + "商城订单" + "','RMB','1','" + customer.getCu_code() + "','" + customer.getCu_name() + "','" + "C18060102" + "','" + "深圳优软商城科技有限公司" + "','" + payment.get("PA_CODE") + "','" + payment.get("PA_NAME") +
-                        "','" + "周连军" + "','" + "1202" + "','" + "研发二部" + "','" + order.getOrderDeliveryAddr() + "','" + order.getCode() + "','已审核','ADMIN',sysdate,'ADMIN',sysdate,'ADMIN',sysdate,'" + order.getBuyerName() + "','" + order.getBuyerMobile() + "')";
+                        "SA_PAYMENTSCODE , SA_PAYMENTS , SA_SELLER , SA_DEPARTMENTCODE , SA_DEPARTMENTNAME , SA_TOPLACE , SA_POCODE , SA_B2CSTATUS , SA_RECORDER , SA_RECORDDATE ," +
+                        "SA_AUDITMAN , SA_AUDITDATE , SA_UPDATEMAN , SA_UPDATEDATE , sa_need1 , sa_need2) values ('" + saleId + "','"+ code + "',sysdate,'商城订单','RMB','1','" + (ObjectUtils.isEmpty(customer) ? "" : customer.getCu_code()) +"','" + (ObjectUtils.isEmpty(customer) ? "" : customer.getCu_name()) +"', " +
+                        "'C18060102','深圳优软商城科技有限公司','" + pa_code +"','" + pa_name +"','周连军','1202', " +
+                        "'研发二部','"+ order.getOrderDeliveryAddr() + "','" + order.getCode() + "','已审核','ADMIN',sysdate,'ADMIN',sysdate, " +
+                        "'ADMIN',sysdate,'" + order.getBuyerName() +"','" + order.getBuyerMobile() + "')";
 
                 LoggingOrder loggingOrder = new LoggingOrder();
 
@@ -191,24 +210,24 @@ public class DiymallApplyTask extends AbstractTask {
                 for(int n = 0, len = orderProductList.size() ; n < len ; n ++){
                     OrderProduct orderProduct = orderProductList.get(n);
 
-                    String productSql = "select * from prodcut where pr_code = '" + orderProduct.getCode() + "'";
+                    String productSql = "select * from product where pr_code = '" + orderProduct.getCode() + "'";
                     Prod product = jdbcTemplate.queryForBean(productSql, Prod.class);
                     if (!ObjectUtils.isEmpty(product)) {
-                        String DetailSql = "Insert into saleDetail( sd_id , sd_said , SD_PRODID , SD_PRODCODE , SD_QTY , SD_PRICE , SD_TAXRATE , SD_DELIVERY) " +
+                        String DetailSql = "insert into saleDetail( sd_id , sd_said , SD_PRODID , SD_PRODCODE , SD_QTY , SD_PRICE , SD_TAXRATE , SD_DELIVERY) " +
                                 "values(saleDetail_seq.nextval, " + saleId + ", " + product.getPr_id() + ", " + product.getPr_code() + ", " + orderProduct.getAmount() +", " +  orderProduct.getUnitPrice() +", " +  "13%" +", " +  "sysdate" + orderProduct.getMaxDelivery() + ")";
                         detailList.add(DetailSql);
                     }
                 }
 
-                String logOrderSql = "Insert into LOGORDER( ORDERCODE , STATUS , SALESTIME , ORDERNUMBER , REMARK)" +
-                        "values(" + ", " + order.getCode() + ", " + loggingOrder.getStatus() + ", " + ",sysdate," + loggingOrder.getOrderNumber() + ", "  + loggingOrder.getRemark() + ")";
+                String logOrderSql = "insert into LOGORDER( ORDERCODE , STATUS , SALESTIME , ORDERNUMBER , REMARK)" +
+                        "values('"  + order.getCode() + "', '" + loggingOrder.getStatus() + "', sysdate,'" + loggingOrder.getOrderNumber() + "', '"  + loggingOrder.getRemark() + "')";
 
-                boolean exists=!StringUtils.isEmpty(customer);
+                boolean exists = !ObjectUtils.isEmpty(customer);
 
                 if(!exists){
                     Customer customerName = jdbcTemplate.queryForBean("select * from CUSTOMER where CU_NAME = ? and CU_AUDITSTATUS = '已审核'",
                             Customer.class, order.getBuyerEnName());
-                    if(!StringUtils.isEmpty(customerName)){
+                    if(!ObjectUtils.isEmpty(customerName)){
                         exists=true;
                     }
                 }
@@ -216,6 +235,9 @@ public class DiymallApplyTask extends AbstractTask {
                 if(exists){
                     jdbcTemplate.execute(sql);
                     jdbcTemplate.batchExecute(detailList);
+                    if(0 == data){
+                        jdbcTemplate.execute("UPDATE CONFIGS SET data = 1 WHERE code = 'mallSaleOrder' and caller = 'mallOrder!YHND'");
+                    }
 
                     loggingOrder.setStatus("成功");
                     loggingOrder.setOrderNumber(code);

+ 5 - 7
src/main/java/com/uas/erp/schedular/mall/task/ProductTask.java

@@ -273,15 +273,13 @@ public class ProductTask extends AbstractTask {
      */
     @TaskMapping(title = "库存同步", cron = "0 0 3 * * ?")
     public void getMallProductToErpProduct() throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
-        // 1.初始数据准备
-        // 1.1查询oracle数据库中的中间表数据
-        List<Stock> stock = jdbcTemplate.queryForBeanList("select * from TT_SHOP_STOCK",
+        //查询中间表 库存取整
+        List<Stock> stock = jdbcTemplate.queryForBeanList("select TSS_PRODCODE,round(tss_amount,0) TSS_ACMOUNT, TSS_DATE FROM TT_SHOP_STOCK",
                 Stock.class);
         String jsons = JSON.toJSONString(stock);
 
         if (!CollectionUtils.isEmpty(stock)) {
-            // 2.整理数据
-            // 2.1.1 第一次预取10,拿到商城物料总条数
+            // 拿到商城物料总条数
             String url = BASEPATH + "/openapi/product/page/get?";
             Integer pageSize = 10;
             Integer pageNumber = 1;
@@ -295,11 +293,11 @@ public class ProductTask extends AbstractTask {
             }
             Integer totalCount = paging.getPagingInfo().getTotalCount();
 
-            // 2.1.2 取处所有物料数据
+            // 取处所有物料数据
             PagingQuery pagingQuery = getProductList(url,totalCount,1);
 
 
-            //2.2 取交集
+            // 取交集
             List<ProductUpdate> productUpdate1 = new ArrayList<>();
             List<ProductUpdate> productUpdate2 = new ArrayList<>();
             for (int i = 0, len = stock.size(); i < len; i += 1) {