Просмотр исходного кода

订单下载更新物料信息方法更新

hejq 7 лет назад
Родитель
Сommit
5aca7e1dd7
1 измененных файлов с 10 добавлено и 4 удалено
  1. 10 4
      src/main/java/com/uas/erp/schedular/b2b/task/SaleDownTask.java

+ 10 - 4
src/main/java/com/uas/erp/schedular/b2b/task/SaleDownTask.java

@@ -77,11 +77,17 @@ public class SaleDownTask extends AbstractTask {
         if (idStr.length() > 0) {
             sqls.add("update SaleDown set (sa_custid,sa_custcode,sa_custname,sa_apcustcode,sa_apcustname,sa_shcustcode,sa_shcustname,sa_sellerid,sa_seller,sa_sellercode)=(select cu_id,cu_code,cu_name,cu_arcode,cu_arname,cu_shcustcode,cu_shcustname,cu_sellerid,cu_sellername,em_code from customer left join employee on em_id=cu_sellerid where cu_uu=sa_customeruu) where sa_id in ("
                     + idStr.toString() + ")");
-            sqls.add("update SaleDownDetail set (sd_prodid,sd_prodcode,sd_custproddetail,sd_prodcustcode)=(select  pc_prodid,pc_prodcode,pc_custproddetail,pc_custprodspec from productcustomer where pc_custcode=(select sa_custcode from SaleDown where sd_said=sa_id)  and pc_custprodcode=sd_custprodcode and nvl(pc_custprodspec,' ')=nvl(sd_custprodspec,' ')) where sd_said in ("
-                    + idStr.toString() + ")");
+            sqls.add("merge into SaleDownDetail d" +
+                    "using (select pc_prodid,pc_prodcode,pc_custproddetail,pc_custprodspec,pc_custprodcode from saledown " +
+                    "inner join productcustomer on pc_custcode = sa_custcode and sa_id in (" + idStr.toString() + ")) p " +
+                    "on (d.sd_custprodcode = p.pc_custprodcode and sd_said in (" + idStr.toString() + "))" +
+                    "when matched then" +
+                    "update set d.sd_prodid = p.pc_prodid,d.sd_prodcode = p.pc_prodcode,d.sd_custproddetail = p.pc_custproddetail,d.sd_prodcustcode = p.pc_custprodspec");
             // 更新客户采购订单明细中的物料,客户物料编号与我司编码一致的料号
-            sqls.add("update SaleDownDetail set (sd_prodid,sd_prodcode)=(select pr_id,pr_code from product where pr_code=sd_custprodcode) where nvl(sd_prodcode,' ')=' ' and sd_said in ("
-                    + idStr.toString() + ")");
+            sqls.add("merge into SaleDownDetail d " +
+                    "using product p on (d.sd_custprodcode = p.pr_code and d.sd_said in (" + idStr.toString() + ")) " +
+                    "when matched then " +
+                    "update set sd_prodid = p.pr_id, sd_prodcode = p.pr_code");
         }
         if (sqls.size() > 0) {
             jdbcTemplate.batchExecute(sqls);