Przeglądaj źródła

同步定制商城订单数据到erp

huangct 8 lat temu
rodzic
commit
b57f2dd93b

+ 113 - 24
src/main/java/com/uas/erp/schedular/diymall/domain/DiymallOrder.java

@@ -1,5 +1,9 @@
 package com.uas.erp.schedular.diymall.domain;
 
+import com.uas.erp.schedular.util.DateUtil;
+import com.uas.erp.schedular.util.NumberUtil;
+import com.uas.erp.schedular.util.StringUtil;
+
 import java.util.Date;
 import java.util.Set;
 
@@ -12,76 +16,112 @@ import java.util.Set;
 public class DiymallOrder {
 	private Long id;
 
-	private String code;
+	//订单号
+	private String code;//SA_CODE
 
+	//付款方式
 	private Integer payment;
 
+	//用户id
 	private Integer userId;
 
+	//订单状态
 	private Integer status;
 
+	//删除   管理后台能否查询的到,类似可用状态(展示状态) 0隐藏  1展示
 	private Integer display;
 
+	//收件人
 	private String takeName;
 
+	//收件人电话 手机号
 	private String takePhone;
 
+	//收件人邮政编码(展示在收件地址中)
 	private String takePostCode;
 
+	//收件地区
 	private Integer takeAreaId;
 
+	//地区名称 收件人地区(省市区)
 	private String takeAreaMsg;
 
+	//详细地址 收件人地址(街道之类)
 	private String takeAddress;
 
+	//收款账号
 	private String toBankNumber;
 
+	//收款人
 	private String toBankName;
 
+	//收款银行
 	private String toBankType;
 
+	//收款开户行
 	private String toBbankAddress;
 
+	//付款人
 	private String fromBankNumber;
 
+	//付款账号
 	private String fromBankName;
 
+	//备注
 	private String remark;
 
+	//订单备注(管理员备注)
 	private String adminRemark;
 
+	//发票抬头 发票信息  名
 	private String invoiceName;
 
+	//发票税号 发票信息  号
 	private String invoiceNumber;
 
+	//运费表主键id
 	private Integer freightId;
 
+	//运费 运费价格
 	private Double freightPrice;
 
+	//小计
 	private Double subtotal;
 
+	//总计
 	private Double grandTotal;
 
+	//运单号
 	private String trackingCode;
 
+	//承运公司
 	private String trackingCompany;
 
+	//承运公司编号
 	private String trackingKdnCode;
 
+	//运单状态  都为0了
 	private Integer trackingStatus;
 
+	//运单最新更新时间
 	private Date trackingUpdateDate;
 
+	//下单时间(创建时间)
 	private Date createDate;
 
+	//付款时间
 	private Date paymentDate;
 
+	//发货时间
 	private Date trackingDate;
 
+	//收货时间
 	private Date receivedDate;
 
+	//完成时间
 	private Date finishDate;
 
+	//申请退款时间
 	private Date refundDate;
 
 	private Integer synData;
@@ -401,32 +441,81 @@ public class DiymallOrder {
 	}
 
 	public String toSqlString(int primaryKey) {
-		return "insert into financingapply (fa_id,fa_enname,fa_contact,fa_telphone,fa_phone,fa_appamount,fa_applyman,fa_applydate,fa_score,fa_busincode,fa_facorpname,fa_facorpcode,fa_finid) values ("
-//				+ primaryKey
+		return "INSERT INTO SALE (SA_ID,SA_CODE,SA_TOPLACE,SA_DATE,SA_TOTAL,SA_FARE,SA_REMARK,SA_SHCUSTNAME) VALUES ("
+				+ primaryKey
+				+ ",'"
+				+ StringUtil.nvl(code, "")
+				+ "','"
+				+ StringUtil.nvl(takeAreaMsg, "") + StringUtil.nvl(takeAddress, "")
+				+ "',"
+				+ DateUtil.parseDateToOracleString(null, createDate)
+				+ ","
+				+ NumberUtil.nvl(grandTotal, 0)
+				+ ", "
+				+ NumberUtil.nvl(freightPrice, 0)
+				+ ",'"
+				+ StringUtil.nvl(remark, "")
+				+ "','"
+				+ StringUtil.nvl(takeName, "")
+
+
+//				+ "', "
+//				+ StringUtil.nvl(payment, "")
+//				+ ",'"
+//				+ StringUtil.nvl(userId, "")
+//				+ ",'"
+//				+ StringUtil.nvl(status, "")
+//				+ "', "
+//				+ StringUtil.nvl(display, "")
+//				+ ",'"
+//				+ StringUtil.nvl(takePhone, "")
+//				+ "', "
+//				+ StringUtil.nvl(takePostCode, "")
+//				+ ",'"
+//				+ StringUtil.nvl(takeAreaId, "")
+//				+ ",'"
+//				+ StringUtil.nvl(toBankNumber, "")
+//				+ ",'"
+//				+ StringUtil.nvl(toBankName, "")
+//				+ "', "
+//				+ StringUtil.nvl(toBankType, "")
+//				+ ",'"
+//				+ StringUtil.nvl(toBbankAddress, "")
 //				+ ",'"
-//				+ StringUtil.nvl(fa_enname, "")
-//				+ "', '"
-//				+ StringUtil.nvl(fa_contact, "")
-//				+ "', '"
-//				+ StringUtil.nvl(fa_telphone, "")
-//				+ "','"
-//				+ StringUtil.nvl(fa_phone, "")
+//				+ StringUtil.nvl(fromBankNumber, "")
 //				+ "', "
-//				+ NumberUtil.nvl(fa_appamount, 0)
-//				+ ", '"
-//				+  StringUtil.nvl(fa_applyman, "")
+//				+ StringUtil.nvl(fromBankName, "")
+//				+ ",'"
+//				+ StringUtil.nvl(adminRemark, "")
+//				+ "', "
+//				+ StringUtil.nvl(invoiceName, "")
+//				+ ",'"
+//				+ StringUtil.nvl(invoiceNumber, "")
+//				+ ",'"
+//				+ StringUtil.nvl(freightId, "")
+//				+ ",'"
+//				+ StringUtil.nvl(subtotal, "")
+//				+ "', "
+//				+ StringUtil.nvl(trackingCode, "")
+//				+ ",'"
+//				+ StringUtil.nvl(trackingCompany, "")
+//				+ ",'"
+//				+ StringUtil.nvl(trackingKdnCode, "")
 //				+ "', "
-//				+ DateUtil.parseDateToOracleString(null, fa_applydate)
-//				+ ", "
-//				+ fa_score
-//				+ ", '"
-//				+ fa_busincode
-//				+ "', '"
-//				+ fa_facorpname
-//				+ "', '"
-//				+ fa_facorpcode
+//				+ StringUtil.nvl(trackingStatus, "")
+//				+ ",'"
+//				+ StringUtil.nvl(trackingUpdateDate, "")
 //				+ "', "
-//				+ fa_finid
-				+ ")";
+//				+ StringUtil.nvl(paymentDate, "")
+//				+ ",'"
+//				+ StringUtil.nvl(trackingDate, "")
+//				+ ",'"
+//				+ StringUtil.nvl(receivedDate, "")
+//				+ "', "
+//				+ StringUtil.nvl(finishDate, "")
+//				+ ",'"
+//				+ StringUtil.nvl(refundDate, "")
+
+				+ "')";
 	}
 }

+ 42 - 0
src/main/java/com/uas/erp/schedular/diymall/domain/DiymallOrderItem.java

@@ -1,5 +1,8 @@
 package com.uas.erp.schedular.diymall.domain;
 
+import com.uas.erp.schedular.util.NumberUtil;
+import com.uas.erp.schedular.util.StringUtil;
+
 /**
  * 定制商城订单从表数据
  *
@@ -12,30 +15,43 @@ public class DiymallOrderItem {
 
     private Integer ordersId;
 
+    //用户定制id
     private Integer userDiyId;
 
+    //定制标题
     private String diyTitle;
 
+    //定制简介
     private String diyRemark;
 
+    //定制图片
     private String diyImgUrl;
 
+    //定制内容
     private String diyContent;
 
+    //瓶子id
     private Integer bottleId;
 
+    //瓶子名称
     private String bottleTitle;
 
+    //瓶子重量
     private Double bottleWeight;
 
+    //水源id
     private Integer bottleTypeId;
 
+    //水源名称
     private String bottleTypeTitle;
 
+    //单价
     private Double itemPrice;
 
+    //数量(箱)
     private Integer itemNumber;
 
+    //小计
     private Double subtotal;
 
     public Integer getId() {
@@ -157,4 +173,30 @@ public class DiymallOrderItem {
     public void setSubtotal(Double subtotal) {
         this.subtotal = subtotal;
     }
+
+    public String toSqlString(int primaryKey, int saleId, int prodId, String code) {
+        return "INSERT INTO SALEDETAIL (SD_ID,SD_SAID,SD_PRODID,SD_CODE,SD_DESCRIPTION,SD_REMARK,SD_QTY,SD_PRICE,SD_TOTAL,SD_PRODNAME,SD_PRODSPEC) VALUES ("
+                + primaryKey
+                + ","
+                + saleId
+                + ","
+                + prodId
+                + ",'"
+                + code
+                + "','"
+                + StringUtil.nvl(diyTitle, "")
+                + "','"
+                + StringUtil.nvl(diyRemark, "")
+                + "',"
+                + NumberUtil.nvl(itemNumber, 0)
+                + ", "
+                + NumberUtil.nvl(itemPrice, 0)
+                + ", "
+                + NumberUtil.nvl(subtotal, 0)
+                + ",'"
+                + StringUtil.nvl(bottleTypeTitle, "")
+                + "','"
+                + StringUtil.nvl(bottleTitle, "")
+                + "')";
+    }
 }

+ 1 - 1
src/main/java/com/uas/erp/schedular/diymall/task/AbstractTask.java

@@ -56,7 +56,7 @@ public class AbstractTask extends AbstractAgent {
      * @return
      */
     private String getApiDomain() {
-        String key = "test".equals(ContextHolder.getMaster().getMa_env()) ? "api.finance.test.url" : "api.finance.url";
+        String key = "test".equals(ContextHolder.getMaster().getMa_env()) ? "api.diymall.test.url" : "api.diymall.url";
         return settingService.getValue(key);
     }
 

+ 16 - 13
src/main/java/com/uas/erp/schedular/diymall/task/DiymallApplyTask.java

@@ -23,7 +23,7 @@ import java.util.Set;
 public class DiymallApplyTask extends AbstractTask {
     @TaskMapping(title = "从定制商城下载客户的订单数据", fixedDelay = 60000, method = Method.DOWNLOAD)
     public void downloadDiymallOrder() {
-        List<DiymallOrder> diymallOrders = getForList("/erp/down/loan/unload", DiymallOrder.class);
+        List<DiymallOrder> diymallOrders = getForList("/erp/loan", DiymallOrder.class);
         if (!CollectionUtils.isEmpty(diymallOrders)) {
             ContextHolder.setDataSize(diymallOrders.size());
             saveSale(diymallOrders);
@@ -39,22 +39,18 @@ public class DiymallApplyTask extends AbstractTask {
      * @param diymallOrders
      */
     private void saveSale(List<DiymallOrder> diymallOrders) {
-        List<String> sqls = new ArrayList<>();
-        List<Long> idList = new ArrayList<Long>();
+        //List<Long> idList = new ArrayList<Long>();
         for (DiymallOrder diymallOrder : diymallOrders) {
             int count = jdbcTemplate.count("from sale where SA_CODE=?", diymallOrder.getCode());
             if (count == 0) {
                 int saleId = jdbcTemplate.generate("sale_seq");
-                idList.add(Long.valueOf(saleId));
+                //idList.add(Long.valueOf(saleId));
                 //TODO sale主从表 product物料表
-
                 String sql = diymallOrder.toSqlString(saleId);
-                sqls.add(sql);
+                jdbcTemplate.execute(sql);
+                saveSaleDetail(saleId, diymallOrder);
             }
         }
-        if (sqls.size() > 0) {
-            jdbcTemplate.batchExecute(sqls);
-        }
     }
 
     /**
@@ -64,6 +60,7 @@ public class DiymallApplyTask extends AbstractTask {
      * @param diymallOrder 定制商城订单
      */
     private void saveSaleDetail(int saleId,DiymallOrder diymallOrder) {
+        List<String> sqls = new ArrayList<>();
         Set<DiymallOrderItem> diymallOrderItems =  diymallOrder.getDiymallOrderItems();
         if (!diymallOrderItems.isEmpty()) {
             for (DiymallOrderItem diymallOrderItem : diymallOrderItems) {
@@ -72,8 +69,14 @@ public class DiymallApplyTask extends AbstractTask {
                 String bottleTypeTitle = diymallOrderItem.getBottleTypeTitle();
                 int productId = saveProduct(bottleTitle, bottleTypeTitle);
                 int saleDetailId = jdbcTemplate.generate("SALEDETAIL_SEQ");
+                // 保存从表数据
+                String sql = diymallOrderItem.toSqlString(saleDetailId, saleId, productId, diymallOrder.getCode());
+                sqls.add(sql);
+
+            }
 
-                //TODO 保存从表数据
+            if (sqls.size() > 0) {
+                jdbcTemplate.batchExecute(sqls);
             }
         }
     }
@@ -87,11 +90,11 @@ public class DiymallApplyTask extends AbstractTask {
     private int saveProduct(String bottleTitle, String bottleTypeTitle) {
         int productId;
         //int count = jdbcTemplate.count("from product where PR_SPEC=? and PR_DETAIL=?", bottleTitle, bottleTypeTitle);
-        String prId  = jdbcTemplate.getString("select PR_ID from product where PR_SPEC=" + bottleTitle +" and PR_DETAIL=" + bottleTypeTitle);
+        String prId  = jdbcTemplate.getString("select PR_ID from product where PR_SPEC='" + bottleTitle +"' and PR_DETAIL='" + bottleTypeTitle + "'");
         if (StringUtils.isEmpty(prId)) {
             //TODO 插入物料
             productId = jdbcTemplate.generate("PRODUCT_SEQ");
-            String sql = "insert into PRODUCT (PR_ID, PR_SPEC, PR_DETAIL) values (" + productId + ","+ bottleTitle + "," + bottleTypeTitle + ")";
+            String sql = "insert into PRODUCT (PR_ID, PR_SPEC, PR_DETAIL) values ('" + productId + "','"+ bottleTitle + "','" + bottleTypeTitle + "')";
             jdbcTemplate.execute(sql);
         } else {
             productId = Integer.parseInt(prId);
@@ -111,6 +114,6 @@ public class DiymallApplyTask extends AbstractTask {
                 return obj.getId();
             }
         });
-        post("/erp/down/loan/back", dataWrap(idStr));
+        post("/erp/loan/back", dataWrap(idStr));
     }
 }

+ 8 - 0
src/main/resources/init/setting.json

@@ -25,4 +25,12 @@
   "key": "api.finance.url",
   "description": "金融保理平台正式接口地址",
   "value": "http://10.10.100.178:23000"
+},{
+  "key": "api.diymall.test.url",
+  "description": "定制商城本地测试接口地址",
+  "value": "http://127.0.0.1:20210"
+},{
+  "key": "api.diymall.url",
+  "description": "定制商城正式接口地址",
+  "value": "http://127.0.0.1:20210"
 }]