Browse Source

增加红点数据复制方法

hejq 7 years ago
parent
commit
6140d84096

+ 188 - 0
src/test/java/com/uas/platform/b2b/purc/RedDotTest.java

@@ -0,0 +1,188 @@
+package com.uas.platform.b2b.purc;
+
+import com.uas.platform.b2b.BaseJunitTest;
+import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.model.OrderType;
+import org.apache.poi.util.StringUtil;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * 红点数据复制方法
+ *  1. 设置 BaseJunitTest 中@TransactionConfiguration 设为false
+ *   @see BaseJunitTest
+ *  2. 新建临时表 语句 redDot.sql中
+ * @author hejq
+ * @date 2018-09-28 15:19
+ */
+public class RedDotTest extends BaseJunitTest {
+
+    @Autowired
+    private CommonDao commonDao;
+
+    private static final String sql = "insert into reddot$all (red_date, red_enuu, red_orid,red_ortype, red_venduu) ";
+
+    /**
+     * 复制数据到全部消息
+     */
+    @Test
+    public void batchInsertIntoRedAll() {
+
+        // 采购
+        String purchaseSql = sql + "select now(), pu_enuu,pu_id,'purc', pu_venduu from purc$orders left join reddot_template on pu_id = rt_orderid where rt_table = 'purc$orders' and pu_id is not null";
+        commonDao.getJdbcTemplate().execute(purchaseSql.toString());
+
+        // 采购变更
+        String purchaseChangeSql = sql + "select now(), pc_enuu,pc_id,'saleChange', pc_venduu from purc$changes left join reddot_template on pc_id = rt_orderid where rt_table = 'purc$changes'";
+        commonDao.getJdbcTemplate().execute(purchaseChangeSql.toString());
+
+        // 发货提醒
+        String purchaseNoticeSql = sql + "select now(), pn_enuu,pn_id,'salenotice', pn_venduu from purc$notice left join reddot_template on pn_id = rt_orderid where rt_table = 'purc$notice'";
+        commonDao.getJdbcTemplate().execute(purchaseNoticeSql.toString());
+
+        // 对账单
+        String apCheckSql = sql + "select now(), pa_custuu,pa_id,'apcheck', pa_enuu from purc$apcheck left join reddot_template on pa_id = rt_orderid where rt_table = 'purc$apcheck'";
+        commonDao.getJdbcTemplate().execute(apCheckSql.toString());
+
+        // 供应商关系
+        String vendorSql = sql + "select now(), ve_myenuu,ve_id,'vendors', ve_vendenuu from purc$vendors left join reddot_template on ve_id = rt_orderid where rt_table = 'purc$vendors'";
+        commonDao.getJdbcTemplate().execute(vendorSql.toString());
+
+        // 打样申请
+        String proofSql = sql + "select now(), pp_enuu,ppi_id,'proofing', ppi_venduu from purc$proofingitems " +
+            "left join reddot_template on ppi_id = rt_orderid " +
+            "left join purc$proofing on ppi_ppid = pp_id " +
+            "where rt_table = 'purc$proofingitems'";
+        commonDao.getJdbcTemplate().execute(proofSql.toString());
+
+        // 应付发票
+        String arCheckSql = sql + "select now(), sac_enuu,saci_id,'saleArCheck',sac_venduu from sale$archeckitems " +
+            "left join reddot_template on saci_id = rt_orderid " +
+            "left join sale$archeck on saci_sacid = sac_id" +
+            " where rt_table = 'sale$archeckitems'";
+        commonDao.getJdbcTemplate().execute(arCheckSql.toString());
+
+        // 询价
+        String inquirySql = sql + "select now(), in_enuu,id_id,'purcinquiry',id_venduu from purc$inquiryitems " +
+            "left join reddot_template on id_id = rt_orderid " +
+            "left join purc$inquiry on id_inid = in_id " +
+            "where rt_table = 'v$purc$inquiryitems'";
+        commonDao.getJdbcTemplate().execute(inquirySql.toString());
+
+        // 模具询价
+        String inquiryMouldSql = sql + "select now(), im_enuu,im_id,'inquirymould',im_venduu from purc$inquirymould " +
+            "left join reddot_template on im_id = rt_orderid  " +
+            "where rt_table in ('v$purc$inquirymould', 'v$purc$inquiry_mould')";
+        commonDao.getJdbcTemplate().execute(inquiryMouldSql.toString());
+
+        // 招标单
+        String tenderSql = sql + "select now(), st_enuu,st_ptid,'purchaseTender',st_venduu from sale$tender " +
+            "left join reddot_template on st_ptid = rt_orderid " +
+            "where rt_table = 'v$purc$tender'";
+        commonDao.getJdbcTemplate().execute(tenderSql.toString());
+
+        // 供应商绩效考核
+        String vpaSql = sql + "select now(), enuu,id,'vendorPerformanceAssess',vpa_veuu from vendorperformanceassess " +
+            "left join reddot_template on id = rt_orderid " +
+            "where rt_table = 'vendorperformanceassess'";
+        commonDao.getJdbcTemplate().execute(vpaSql.toString());
+
+        // 委外单
+        String makeSql = sql + "select now(), ma_enuu,ma_id,'makeOrder',ma_venduu from make$orders " +
+            "left join reddot_template on ma_id = rt_orderid " +
+            "where rt_table = 'make$orders'";
+        commonDao.getJdbcTemplate().execute(makeSql.toString());
+
+        // 委外变更单明细
+        String makeChangeItemSql = sql + "select now(), mc_enuu,mcd_id,'makeChangeItem',mcd_venduu from make$changeitems " +
+            "left join `make$changes` on mcd_pcid = mc_id " +
+            "left join reddot_template on mcd_id = rt_orderid " +
+            "where rt_table = 'make$changeitems'";
+        commonDao.getJdbcTemplate().execute(makeChangeItemSql.toString());
+    }
+
+    /**
+     * 复制数据到已读消息列表
+     */
+    @Test
+    public void batchInsertIntoRedDone() {
+        //采购单
+        Object[] objects = new Object[]{OrderType.purc.name(), "purc$orders"};
+        insertIntoRedDoneByKind(objects);
+
+        // 采购变更
+        objects = new Object[]{OrderType.saleChange.name(), "purc$changes"};
+        insertIntoRedDoneByKind(objects);
+
+        // 发货提醒
+        objects = new Object[]{OrderType.salenotice.name(), "purc$notice"};
+        insertIntoRedDoneByKind(objects);
+
+        // 对账单
+        objects = new Object[]{OrderType.apcheck.name(), "purc$apcheck"};
+        insertIntoRedDoneByKind(objects);
+
+        // 供应商关系
+        objects = new Object[]{OrderType.vendors.name(), "purc$vendors"};
+        insertIntoRedDoneByKind(objects);
+
+        // 打样申请
+        objects = new Object[]{OrderType.proofing.name(), "purc$proofingitems"};
+        insertIntoRedDoneByKind(objects);
+
+        // 应付发票
+        objects = new Object[]{OrderType.saleArCheck.name(), "sale$archeckitems"};
+        insertIntoRedDoneByKind(objects);
+
+        // 询价
+        objects = new Object[]{OrderType.purcinquiry.name(), "v$purc$inquiryitems"};
+        insertIntoRedDoneByKind(objects);
+
+        // 模具询价
+        objects = new Object[]{OrderType.inquirymould.name(), "v$purc$inquirymould"};
+        insertIntoRedDoneByKind(objects);
+
+        // 模具询价
+        objects = new Object[]{OrderType.inquirymould.name(), "v$purc$inquiry_mould"};
+        insertIntoRedDoneByKind(objects);
+
+        // 招标单
+        objects = new Object[]{OrderType.purchaseTender.name(), "v$purc$tender"};
+        insertIntoRedDoneByKind(objects);
+
+        // 供应商绩效考核
+        objects = new Object[]{OrderType.vendorPerformanceAssess.name(), "vendorperformanceassess"};
+        insertIntoRedDoneByKind(objects);
+
+        // 委外单
+        objects = new Object[]{OrderType.makeOrder.name(), "make$orders"};
+        insertIntoRedDoneByKind(objects);
+
+        // 委外变更单明细
+        objects = new Object[]{OrderType.makeChangeItem.name(), "make$changeitems"};
+        insertIntoRedDoneByKind(objects);
+    }
+
+    /**
+     * 插入已读红点列表
+     *
+     * @param objects 参数
+     */
+    public void insertIntoRedDoneByKind(Object[] objects) {
+        String sql = "insert into `reddot$done` (red_done_date,red_done_enuu,red_done_useruu,red_done_orid,red_done_ortype) " +
+            "select coalesce(puo_readdate, now()),puo_enuu,puo_useruu,puo_sourceid,'%' from `purc$userorders` where puo_readstatus = 211 and puo_table = '%'";
+        commonDao.getJdbcTemplate().execute(StringUtil.format(sql, objects));
+    }
+
+    /**
+     * 绑定消息列表和已读列表关系
+     */
+    @Test
+    public void bindAllAndDone() {
+        String sql = "update reddot$done join reddot$all on red_done_ortype = red_ortype and red_done_orid = red_orid " +
+            "set red_done_redid = red_id where red_id is not null and red_done_id is not null";
+        commonDao.getJdbcTemplate().execute(sql);
+    }
+
+}

+ 16 - 0
src/test/java/com/uas/platform/b2b/purc/redDot.sql

@@ -0,0 +1,16 @@
+-- 新建总消息临时表
+CREATE TABLE `reddot_template` (
+    `rt_id` bigint(20) NOT NULL AUTO_INCREMENT,
+    `rt_table` varchar(255) DEFAULT '',
+    `rt_status` int(3) DEFAULT '200',
+    `rt_orderid` bigint(20) NOT NULL,
+    PRIMARY KEY (`rt_id`),
+    KEY `reddot_template_table_IDX` (`rt_table`),
+    KEY `reddot_template_status_IDX` (`rt_status`),
+    KEY `reddot_template_orderit_IDX` (`rt_orderid`)
+)
+
+-- 复制数据到临时表
+insert into reddot_template(rt_table,rt_orderid) select puo_table,puo_sourceid from purc$userorders group by puo_table,puo_sourceid;
+
+