Explorar o código

feat:客户物料对应增加一对多逻辑

Hu Jie %!s(int64=6) %!d(string=hai) anos
pai
achega
43b3de0db3

+ 3 - 2
src/main/java/com/uas/erp/schedular/b2b/task/SaleDownTask.java

@@ -78,9 +78,10 @@ public class SaleDownTask extends AbstractTask {
             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("merge into SaleDownDetail d " +
-                    "using (select distinct pc_prodid,pc_prodcode,pc_custproddetail,pc_custprodspec,pc_custprodcode from saledown " +
+                    "using (select distinct pc_prodid,pc_prodcode,pc_custproddetail,pc_custprodspec,pc_custprodcode,pc_custcode 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() + ")) " +
+                    "on (d.sd_custprodcode = p.pc_custprodcode and sd_said in (" + idStr.toString() + ")" +
+                    " and not exists(select count(1) from productcustomer t where t.pc_custcode=p.pc_custcode and t.pc_custprodcode= D.sd_custprodcode group by pc_custcode,pc_custprodcode HAVING count(1) > 1)) " +
                     "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");
             // 更新客户采购订单明细中的物料,客户物料编号与我司编码一致的料号