Browse Source

fix: 发货提醒判断逻辑更新;新增测试

hejq 7 years ago
parent
commit
db9357a325
2 changed files with 65 additions and 1 deletions
  1. 32 1
      db/ddl.sql
  2. 33 0
      src/test/java/com/uas/platform/b2b/purc/PurchaseNotify.java

+ 32 - 1
db/ddl.sql

@@ -93,4 +93,35 @@ pd_vdid in (select ve_id from `purc$vendors` where ve_myenuu = 10042875);
 -- author: hejq
 -- author: hejq
 -- content: 供应商客户关系表增加对账总额字段
 -- content: 供应商客户关系表增加对账总额字段
 alter table `purc$vendors`
 alter table `purc$vendors`
-  add column apcheck_count VARCHAR(200) default '' comment '对账总额(已对账和未对账之和)';
+  add column apcheck_count VARCHAR(200) default '' comment '对账总额(已对账和未对账之和)';
+
+-- date: 2018-12-28 17:19
+-- author: hejq
+-- content: 更新发货提醒判断逻辑
+-- 新增函数,返回可发货日期
+CREATE DEFINER=`sa`@`%` FUNCTION `b2b_mysql_test`.`purc_notice_delivery`(v_pn_delivery date,
+                                                                         v_pr_ltinstock int) RETURNS date
+  begin
+
+    if v_pr_ltinstock = -1 then
+      -- 	这里设置减去两个月最后一天再加上26天即指定月份的26号
+      return last_day(v_pn_delivery) + interval (-2) month + interval (26) day;
+    else
+      return v_pn_delivery - interval (v_pr_ltinstock + 1) day;
+    end if;
+  end;
+-- 更新判断方法,根据生成的可发货日期与当前日期比较,大于或等于可以发货,其他状态不能发货
+CREATE DEFINER=`sa`@`%` FUNCTION `b2b_mysql_test`.`PURC_NOTICE_WAIT_TO_SEND`(v_pn_delivery date,
+    v_pr_ltinstock int) RETURNS smallint(6)
+begin
+-- 	可以发货的时间
+declare enable_delivery date;
+
+set enable_delivery := purc_notice_delivery(v_pn_delivery, coalesce(v_pr_ltinstock, 0));
+
+if to_days(current_date()) - to_days(enable_delivery) >= 0 then
+return 0;
+else
+return 1;
+end if;
+end

+ 33 - 0
src/test/java/com/uas/platform/b2b/purc/PurchaseNotify.java

@@ -1,6 +1,8 @@
 package com.uas.platform.b2b.purc;
 package com.uas.platform.b2b.purc;
 
 
 import com.uas.platform.b2b.BaseJunitTest;
 import com.uas.platform.b2b.BaseJunitTest;
+import com.uas.platform.b2b.core.util.DateFormatUtils;
+import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.dao.PurchaseNoticeDao;
 import com.uas.platform.b2b.dao.PurchaseNoticeDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.model.PurchaseNotice;
 import com.uas.platform.b2b.model.PurchaseNotice;
@@ -29,6 +31,9 @@ public class PurchaseNotify extends BaseJunitTest {
     @Autowired
     @Autowired
     private EntityManagerFactory entityManagerFactory;
     private EntityManagerFactory entityManagerFactory;
 
 
+    @Autowired
+    private CommonDao commonDao;
+
     @PersistenceContext
     @PersistenceContext
     protected EntityManager em;
     protected EntityManager em;
 
 
@@ -126,4 +131,32 @@ public class PurchaseNotify extends BaseJunitTest {
         return notice;
         return notice;
     }
     }
 
 
+
+    /**
+     * // 测试用例
+     // -1, 不跨年,25日前
+     sendDate(-1, '2018-12-23')  期望结果: '2018-11-26'
+     // -1,不跨年,26日后
+     sendDate(-1, '2018-12-28')  期望结果: '2018-11-26'
+     // -1, 跨年,25日前
+     sendDate(-1, '2019-01-23')  期望结果: '2018-12-26'
+     // -1,跨年,26日后
+     sendDate(-1, '2019-01-28')  期望结果: '2018-12-26'
+     // >=0, 不跨年,不跨月
+     sendDate(5, '2018-12-23')  期望结果: '2018-12-17'
+     // >=0,不跨年,跨月,有31号
+     sendDate(5, '2018-12-02')  期望结果: '2018-11-26'
+     // >=0,不跨年,跨月,无31号
+     sendDate(5, '2018-11-02')  期望结果: '2018-10-27'
+     // >=0, 跨年,不跨月
+     sendDate(5, '2019-01-23')  期望结果: '2019-01-17'
+     // >=0,跨年,跨月
+     sendDate(5, '2019-01-02')  期望结果: '2018-12-27'
+     */
+    @Test
+    public void getSendDelivery() {
+        StringBuffer sql = new StringBuffer("select purc_notice_delivery('").append("2018-12-23").append("', ").append("-1").append(")");
+        Date delivery = commonDao.queryForObject(sql.toString(), Date.class);
+        System.out.println(delivery);
+    }
 }
 }