فهرست منبع

更新存储过程,处理多条单据传入只存一条的bug

hejq 8 سال پیش
والد
کامیت
2cea238dfd
1فایلهای تغییر یافته به همراه82 افزوده شده و 82 حذف شده
  1. 82 82
      src/main/resources/database/template/deputyOrder.xml

+ 82 - 82
src/main/resources/database/template/deputyOrder.xml

@@ -14,99 +14,99 @@
         <iterator loop="orders" var="order">
         <iterator loop="orders" var="order">
             <block>
             <block>
                 begin
                 begin
-                select * into v_customer from customer where cu_uu=${order.enuu};
-                exception when no_data_found then
-                RAISE_APPLICATION_ERROR(-20010, '客户['||${order.enuu}||']不存在');
+                    select * into v_customer from customer where cu_uu=${order.enuu};
+                    exception when no_data_found then
+                    RAISE_APPLICATION_ERROR(-20010, '客户['||${order.enuu}||']不存在');
                 end;
                 end;
                 begin
                 begin
-                select * into v_employee from employee where em_code=v_customer.cu_sellercode;
-                exception when no_data_found then null;
+                    select * into v_employee from employee where em_code=v_customer.cu_sellercode;
+                    exception when no_data_found then null;
                 end;
                 end;
                 begin
                 begin
-                v_vecode := '';
-                select count(1) into v_ve_count from vendor where ve_name=${order.tervendor};
-                if v_ve_count > 0 then
-                    select * into v_vendor from vendor where ve_name=${order.tervendor};
-                    v_vecode := v_vendor.ve_code;
-                end if;
+                    v_vecode := '';
+                    select count(1) into v_ve_count from vendor where ve_name=${order.tervendor};
+                    if v_ve_count > 0 then
+                        select * into v_vendor from vendor where ve_name=${order.tervendor};
+                        v_vecode := v_vendor.ve_code;
+                    end if;
                 end;
                 end;
                 begin
                 begin
-                select * into v_sale from sale where sa_code=${order.salecode};
-                exception when no_data_found then null;
+                    select * into v_sale from sale where sa_code=${order.salecode};
+                    exception when no_data_found then v_sale.sa_id := '';
                 end;
                 end;
                 if v_sale.sa_id is null or ${order.statuscode} = 222 then
                 if v_sale.sa_id is null or ${order.statuscode} = 222 then
-                if v_sale.sa_id is null then
-                v_sale.sa_id := sale_seq.nextval;
-                v_sale.sa_backstatus := '';
-                else
-                delete from saledetail where sd_said=v_sale.sa_id;
-                delete from sale where sa_id=v_sale.sa_id;
-                v_sale.sa_backstatus := '已下载';
-                end if;
-                v_sale.sa_code := ${order.salecode};
-                v_sale.sa_pocode := ${order.salepocode};
-                v_sale.sa_date := ${order.entrydate};
-                v_sale.sa_kind := '代采订单';
-                v_sale.sa_custcode := v_customer.cu_code;
-                v_sale.sa_custname := v_customer.cu_name;
-                v_sale.sa_currency := ${order.currency};
-                v_sale.sa_apcustcode := v_customer.cu_code;
-                v_sale.sa_apcustname := v_customer.cu_name;
-                v_sale.sa_shcustcode := v_customer.cu_code;
-                v_sale.sa_shcustname := v_customer.cu_name;
-                v_sale.sa_paymentscode := v_customer.cu_paymentscode;
-                v_sale.sa_payments := v_customer.cu_payments;
-                v_sale.sa_toplace := v_customer.cu_add1;
-                v_sale.sa_fromcode := ${order.code};
-                v_sale.sa_sellercode := v_customer.cu_sellercode;
-                v_sale.sa_departmentcode := v_employee.em_departmentcode;
-                v_sale.sa_departmentname := v_employee.em_depart;
-                v_sale.sa_recorder := '系统';
-                v_sale.sa_recorddate := sysdate;
-                v_sale.sa_statuscode := 'ENTERING';
-                v_sale.sa_status := '在录入';
-                v_sale.sa_vendcode := v_vecode;
-                v_sale.sa_vendname := ${order.tervendor};
-                v_sale.sa_a20_user := ${order.madealdate};
-                v_sale.sa_a19_user := ${order.madealcode};
-                v_sale.sa_a18_user := ${order.vendtel};
-                v_sale.sa_a17_user := ${order.venduser};
-                v_sale.sa_a14_user := ${order.shipdate};
-                v_sale.sa_a16_user := ${order.deliverymethod};
-                v_sale.sa_a15_user := ${order.pickupmethod};
-                v_sale.sa_a11_user := ${order.tervendaddress};
-                v_sale.sa_a9_user := ${order.companyname};
-                v_sale.sa_a10_user := ${order.requirepaydate};
-                v_sale.sa_a8_user := ${order.bankname};
-                v_sale.sa_a6_user := ${order.bankaccount};
-                v_sale.sa_a7_user := ${order.bankaddress};
-                v_sale.sa_a5_user := ${order.bankcode};
-                v_sale.sa_a4_user := ${order.otherdata};
-                v_sale.sa_a3_user := ${order.legalrepresent};
-                v_sale.sa_a24_user := ${order.deliverydate};
-                v_sale.sa_a22_user := ${order.paydate};
-                v_sale.sa_payername := ${order.paycomname};
-                v_sale.sa_payeraddress := ${order.paycomaddress};
-                v_sale.sa_a13_user := ${order.riskmethod};
-                v_sale.sa_a12_user := ${order.taxpaymentmethod};
-                v_sale.sa_a2_user := ${order.enfax};
-                v_sale.sa_a25_user := ${order.paycomaddress};
-                v_sale.sa_a10_user_2 := ${order.actualpaydate};
-                insert into sale values v_sale;
+                    if v_sale.sa_id is null then
+                        v_sale.sa_id := sale_seq.nextval;
+                        v_sale.sa_backstatus := '';
+                    else
+                        delete from saledetail where sd_said=v_sale.sa_id;
+                        delete from sale where sa_id=v_sale.sa_id;
+                        v_sale.sa_backstatus := '已下载';
+                    end if;
+                    v_sale.sa_code := ${order.salecode};
+                    v_sale.sa_pocode := ${order.salepocode};
+                    v_sale.sa_date := ${order.entrydate};
+                    v_sale.sa_kind := '代采订单';
+                    v_sale.sa_custcode := v_customer.cu_code;
+                    v_sale.sa_custname := v_customer.cu_name;
+                    v_sale.sa_currency := ${order.currency};
+                    v_sale.sa_apcustcode := v_customer.cu_code;
+                    v_sale.sa_apcustname := v_customer.cu_name;
+                    v_sale.sa_shcustcode := v_customer.cu_code;
+                    v_sale.sa_shcustname := v_customer.cu_name;
+                    v_sale.sa_paymentscode := v_customer.cu_paymentscode;
+                    v_sale.sa_payments := v_customer.cu_payments;
+                    v_sale.sa_toplace := v_customer.cu_add1;
+                    v_sale.sa_fromcode := ${order.code};
+                    v_sale.sa_sellercode := v_customer.cu_sellercode;
+                    v_sale.sa_departmentcode := v_employee.em_departmentcode;
+                    v_sale.sa_departmentname := v_employee.em_depart;
+                    v_sale.sa_recorder := '系统';
+                    v_sale.sa_recorddate := sysdate;
+                    v_sale.sa_statuscode := 'ENTERING';
+                    v_sale.sa_status := '在录入';
+                    v_sale.sa_vendcode := v_vecode;
+                    v_sale.sa_vendname := ${order.tervendor};
+                    v_sale.sa_a20_user := ${order.madealdate};
+                    v_sale.sa_a19_user := ${order.madealcode};
+                    v_sale.sa_a18_user := ${order.vendtel};
+                    v_sale.sa_a17_user := ${order.venduser};
+                    v_sale.sa_a14_user := ${order.shipdate};
+                    v_sale.sa_a16_user := ${order.deliverymethod};
+                    v_sale.sa_a15_user := ${order.pickupmethod};
+                    v_sale.sa_a11_user := ${order.tervendaddress};
+                    v_sale.sa_a9_user := ${order.companyname};
+                    v_sale.sa_a10_user := ${order.requirepaydate};
+                    v_sale.sa_a8_user := ${order.bankname};
+                    v_sale.sa_a6_user := ${order.bankaccount};
+                    v_sale.sa_a7_user := ${order.bankaddress};
+                    v_sale.sa_a5_user := ${order.bankcode};
+                    v_sale.sa_a4_user := ${order.otherdata};
+                    v_sale.sa_a3_user := ${order.legalrepresent};
+                    v_sale.sa_a24_user := ${order.deliverydate};
+                    v_sale.sa_a22_user := ${order.paydate};
+                    v_sale.sa_payername := ${order.paycomname};
+                    v_sale.sa_payeraddress := ${order.paycomaddress};
+                    v_sale.sa_a13_user := ${order.riskmethod};
+                    v_sale.sa_a12_user := ${order.taxpaymentmethod};
+                    v_sale.sa_a2_user := ${order.enfax};
+                    v_sale.sa_a25_user := ${order.paycomaddress};
+                    v_sale.sa_a10_user_2 := ${order.actualpaydate};
+                    insert into sale values v_sale;
             </block>
             </block>
-            <iterator loop="order.deputyOrderItems" var="item">
-                v_sd_id := saledetail_seq.nextval;
-                v_pr_code := 'PROD'||to_char(sysdate,'yymmdd')||v_sd_id;
+                <iterator loop="order.deputyOrderItems" var="item">
+                    v_sd_id := saledetail_seq.nextval;
+                    v_pr_code := 'PROD'||to_char(sysdate,'yymmdd')||v_sd_id;
 
 
-                insert into product (pr_id, pr_detail, pr_spec, pr_speccs, pr_unit, pr_recordman, pr_docdate, pr_status, pr_statuscode, pr_remark,
-                pr_code, pr_orispeccode, pr_brand) values (product_seq.nextval, ${item.prodname},
-                ${item.prodcode}, ${item.prodspec}, 'PCS', '系统', sysdate, '已审核', 'AUDITED',
-                v_sale.sa_code||'平台代采订单产生', v_pr_code, ${item.prodcode}, ${item.prodbrand});
+                    insert into product (pr_id, pr_detail, pr_spec, pr_speccs, pr_unit, pr_recordman, pr_docdate, pr_status, pr_statuscode, pr_remark,
+                    pr_code, pr_orispeccode, pr_brand) values (product_seq.nextval, ${item.prodname},
+                    ${item.prodcode}, ${item.prodspec}, 'PCS', '系统', sysdate, '已审核', 'AUDITED',
+                    v_sale.sa_code||'平台代采订单产生', v_pr_code, ${item.prodcode}, ${item.prodbrand});
 
 
-                insert into saledetail (sd_id, sd_said, sd_detno, sd_code, sd_prodcode, sd_qty, sd_price, sd_total,sd_remark,
-                sd_delivery, SD_COSTINGPRICE) values (v_sd_id, v_sale.sa_id, ${item.detno}, v_sale.sa_code, v_pr_code, ${item.amount},
-                ${item.unitprice}, ${item.totalprice}, ${item.remark}, ${order.deliverydate}, ${item.purcprice});
-            </iterator>
+                    insert into saledetail (sd_id, sd_said, sd_detno, sd_code, sd_prodcode, sd_qty, sd_price, sd_total,sd_remark,
+                    sd_delivery, SD_COSTINGPRICE) values (v_sd_id, v_sale.sa_id, ${item.detno}, v_sale.sa_code, v_pr_code, ${item.amount},
+                    ${item.unitprice}, ${item.totalprice}, ${item.remark}, ${order.deliverydate}, ${item.purcprice});
+                </iterator>
             <block>
             <block>
                 end if;
                 end if;
             </block>
             </block>