/**
* 訂單錄入頁面數據,存儲過程方式
* @param customerOrderInputDTO
* @return
* @throws BizServiceException
*/
public CustomerOrderInputRspDTO orderInput(CustomerOrderInputDTO customerOrderInputDTO) throws BizServiceException{
CustomerOrderInputRspDTO customerOrderInputRspDTO = new CustomerOrderInputRspDTO();
Map<String,Object> map = new HashMap<String, Object>();
setParameterMapInput(map,customerOrderInputDTO);
Integer orderType = customerOrderInputDTO.getCustomerOrderDTO().getOrderType();
if(orderType==null){
throw new BizServiceException("orderType is null");
}
Long startTime = System.currentTimeMillis();
/**
* 充值卡訂單錄入
BO需要返回的值有:
productDTOs
productDTO:cardLayouts/packages(包含packageFee)/replaceFee/validityPeriod
custContractDTO:annualFee/deliveryFee/cardFee
customerDTO:invoiceAddressList/invoiceCompanyList/deliveryPointList/deliveryPoint.recipientList/name/id
deliveryRecipientDTOs
orderDate/sales
cardValidityPeriod
初始頁面需要返回currDate/sales
選擇客戶或者產品->訪問後臺,返回數據重新加載整個頁面,參數有客戶號或產品號
三種狀態:無客戶號、有客戶號無產品號、有客戶號有產品號
*/
if(orderType.equals(1)){
customerOrderDAO.queryForObject("RLOrderInput",map);
}
/**
* 充值訂單錄入頁面
* BO需要返回的值有:
productDTOs
productDTO.accTypes/cardValidityPeriod
custAcctypeContractDTO.serviceFee
customerDTO:invoiceAddressList/invoiceCompanyList/name/id
orderDate/sales
初始頁面需要返回currDate/sales
選擇客戶或者產品或服務->訪問後臺,返回數據重新加載整個頁面,參數有客戶號或產品號
四種狀態:無客戶號、有客戶號無產品號、有客戶號有產品號、有服務號
*/
if(orderType.equals(2)){
customerOrderDAO.queryForObject("CROrderInput",map);
}
/**
* 禮品卡庫存訂單錄入頁面數據,存儲過程方式
* BO需要返回的值:
productDTOs
productDTO:accTypes/cardLayouts/prodFaceValues
cardValidityPeriod
orderDate
選擇產品->訪問後臺,重載整個頁面
兩種狀態:初始頁面無產品號、選擇產品後有產品號
*/
if(orderType.equals(3)){
customerOrderDAO.queryForObject("GSTOrderInput",map);
}
/**
* 禮品卡銷售訂單錄入頁面數據,存儲過程方式
* BO需要返回的值:
productDTOs
productDTO.accTypes
custContractDTO:deliveryFee
customerDTO:invoiceAddressList/invoiceCompanyList/deliveryPointList/deliveryPoint.recipientList/name/id
orderDate/sales
初始頁面需要返回currDate/sales
選擇客戶或者產品->訪問後臺,返回數據重新加載整個頁面,參數有客戶號或產品號
三種狀態:無客戶號、有客戶號無產品號、有客戶號有產品號
*/
if(orderType.equals(4)){
customerOrderDAO.queryForObject("GSLOrderInput",map);
}
System.out.println("================= cost time "+(System.currentTimeMillis() - startTime)+"/1000 seconds");
parseParameterMapResult(map, customerOrderInputRspDTO,customerOrderInputDTO);
return customerOrderInputRspDTO;
}
/**
* 訂單錄入,調用存儲過程以前,設置其參數parameterMap
* @param map
* @param customerOrderInputDTO
* @throws BizServiceException
*/
private void setParameterMapInput(Map<String,Object> map,CustomerOrderInputDTO customerOrderInputDTO) throws BizServiceException{
CustomerOrderDTO customerOrderDTO = customerOrderInputDTO.getCustomerOrderDTO();
Long productId = customerOrderDTO.getProductId();
Short acctypeId = customerOrderDTO.getAccTypeId();
Long customerId = customerOrderDTO.getCustomerId();
Integer orderType = customerOrderDTO.getOrderType();
Long orderId = customerOrderDTO.getOrderId();
productId = (productId==null)?-1l:productId;
customerId = (customerId==null)?-1l:customerId;
acctypeId = (acctypeId==null)?(short)-1:acctypeId;
orderId = (orderId==null)?-1l:orderId;
map.put("i_issuerId", customerOrderInputDTO.getDefaultIssuerId());
map.put("i_issuerGroupId", customerOrderInputDTO.getDefaultIssuerGroupId());
map.put("i_orderType", orderType);
map.put("i_customerId",customerId);
map.put("i_productId", productId);
map.put("i_accTypeId", acctypeId);
map.put("i_orderId", orderId);
}
/**
* 訂單錄入,調用存儲過程以後,處理其返回參數,由MAP轉爲DTO
* @param map
* @param customerOrderInputRspDTO
* @throws BizServiceException
*/
@SuppressWarnings("unchecked")
private void parseParameterMapResult(Map<String,Object> map,CustomerOrderInputRspDTO customerOrderInputRspDTO,CustomerOrderInputDTO customerOrderInputDTO) throws BizServiceException{
try{
CustomerDTO customerDTO = new CustomerDTO();
customerDTO.setCustomerId(customerOrderInputDTO.getCustomerOrderDTO().getCustomerId());
//設置銷售人員列表
List<User> users = (List<User>) map.get("o_sales");
List<UserDTO> saleUserList = new ArrayList<UserDTO>();
if(users!=null){
for (User user : users) {
UserDTO dto = new UserDTO();
ReflectionUtil.copyProperties(user, dto);
saleUserList.add(dto);
}
}
//設置訂單日期
List<Map> currDates = (List<Map>) map.get("o_orderDate");
Date currDate = null;
if(currDates!=null&&currDates.size()>0&&currDates.get(0).get("currDate")!=null){
currDate = new SimpleDateFormat("yyyyMMdd").parse(currDates.get(0).get("currDate").toString());
}
//設置產品列表
List<ProductDTO> products = (List<ProductDTO>) map.get("o_products");
//設置產品
List<ProductDTO> products2 = (List<ProductDTO>) map.get("o_product");
ProductDTO productDTO = new ProductDTO();
if(products2!=null&&products2.size()>0){
productDTO = products2.get(0);
}
//設置收貨地址列表,包含地址下收貨人列表
List<DeliveryPointDTO> deliveryPointDTOs = (List<DeliveryPointDTO>) map.get("o_deliveryPointList");
if(deliveryPointDTOs!=null&&deliveryPointDTOs.size()>0){
for(DeliveryPointDTO deliveryPointDTO:deliveryPointDTOs){
String str = deliveryPointDTO.getRecipientsStr();//格式爲"..id,name;.."
if(str==null){
break;
}
List<DeliveryRecipientDTO> deliveryRecipientDTOs = new ArrayList<DeliveryRecipientDTO>();
for(String s:str.split(";")){
if(s==null){
break;
}
DeliveryRecipientDTO deliveryRecipientDTO = new DeliveryRecipientDTO();
deliveryRecipientDTO.setRecipientId(Long.parseLong(s.split(",")[0]));
deliveryRecipientDTO.setRecipient(s.split(",")[1]);
deliveryRecipientDTOs.add(deliveryRecipientDTO);
}
deliveryPointDTO.setRecipientList(deliveryRecipientDTOs);
}
}
customerDTO.setDeliveryPointList(deliveryPointDTOs);
//設置收貨人列表爲第一個地址下收貨人列表
List<DeliveryRecipientDTO> deliveryRecipientDTOs = new ArrayList<DeliveryRecipientDTO>();
if(deliveryPointDTOs!=null&&deliveryPointDTOs.size()>0){
DeliveryPointDTO deliveryPointDTO = deliveryPointDTOs.get(0);
if(deliveryPointDTO!=null){
deliveryRecipientDTOs = deliveryPointDTO.getRecipientList();
}
}
//設置發票地址列表
List<InvoiceAddressDTO> invoiceAddressDTOs = (List<InvoiceAddressDTO>) map.get("o_invoiceAddressList");
customerDTO.setInvoiceAddressList(invoiceAddressDTOs);
//設置發票公司列表
List<InvoiceCompanyDTO> invoiceCompanyDTOs = (List<InvoiceCompanyDTO>) map.get("o_invoiceCompanyList");
customerDTO.setInvoiceCompanyList(invoiceCompanyDTOs);
//設置產品下服務列表
List<AccTypeDTO> accTypeDTOs = (List<AccTypeDTO>) map.get("o_accTypes");
productDTO.setAccTypes(accTypeDTOs);
//設置產品下包裝列表
List<PackageDTO> packageDTOs = (List<PackageDTO>) map.get("o_packages");
productDTO.setPackages(packageDTOs);
//設置產品合同,結果集只有一條
List<CustContractDTO> contractDTOs = (List<CustContractDTO>) map.get("o_custContracts");
CustContractDTO contractDTO = new CustContractDTO();
if(contractDTOs!=null&&contractDTOs.size()>0){
contractDTO = contractDTOs.get(0);
}
//設置產品下卡面列表
List<CardLayoutDTO> cardLayoutDTOs = (List<CardLayoutDTO>) map.get("o_cardLayouts");
productDTO.setCardLayouts(cardLayoutDTOs);
//設置產品下面額列表
List<ProdFaceValueDTO> prodFaceValueDTOs = (List<ProdFaceValueDTO>) map.get("o_prodFaceValues");
productDTO.setProdFaceValues(prodFaceValueDTOs);
//設置客戶姓名
String customerName = (String)map.get("o_customerName");
customerDTO.setCustomerName(customerName);
//設置服務費(服務合同)
BigDecimal serviceFee = (BigDecimal) map.get("o_serviceFee");
CustAcctypeContractDTO custAcctypeContractDTO = new CustAcctypeContractDTO();
if(serviceFee!=null){
custAcctypeContractDTO.setServiceFee(serviceFee);
}
CustomerOrderDTO customerOrderDTO = customerOrderInputDTO.getCustomerOrderDTO();
if(map.get("o_customerOrder")!=null&&((List)map.get("o_customerOrder")).size()>0){
ReflectionUtil.copyProperties((CustomerOrder)((List)map.get("o_customerOrder")).get(0), customerOrderDTO);
customerOrderDTO.setCustomerName(customerName);
if(map.get("o_productName")!=null){
customerOrderDTO.setProductName(map.get("o_productName").toString());
}
if(map.get("o_issuerName")!=null){
customerOrderDTO.setIssuerName(map.get("o_issuerName").toString());
}
}else{
customerOrderDTO.setOrderDate(currDate);
customerOrderDTO.setCustomerId(customerDTO.getCustomerId());
customerOrderDTO.setCustomerName(customerName);
customerOrderDTO.setProductId(productDTO.getProductId());
Date cardValidityPeriod = null;
if(productDTO.getValidityePeriod()!=null){
cardValidityPeriod = DateUtil.countCardValidate(new Date(), productDTO.getValidityePeriod());
}
customerOrderDTO.setCardValidityPeriod(cardValidityPeriod);
customerOrderDTO.setAccTypeId(custAcctypeContractDTO.getAccTypeId());
if(deliveryRecipientDTOs!=null&&deliveryRecipientDTOs.size()>0){
customerOrderDTO.setOrderContact(deliveryRecipientDTOs.get(0).getRecipientId());
}
}
customerOrderInputRspDTO.setSaleUserList(saleUserList);
customerOrderInputRspDTO.setCustomerOrderDTO(customerOrderDTO);
customerOrderInputRspDTO.setCustContractDTO(contractDTO);
customerOrderInputRspDTO.setProductDTO(productDTO);
customerOrderInputRspDTO.setProductDTOs(products);
customerOrderInputRspDTO.setCustomerDTO(customerDTO);
customerOrderInputRspDTO.setDeliveryRecipientDTOs(deliveryRecipientDTOs);
customerOrderInputRspDTO.setCustAcctypeContractDTO(custAcctypeContractDTO);
}catch(Exception e){
e.printStackTrace();
throw new BizServiceException("系統異常");
}
}
IBATIS XML文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="TB_ENT_CUSTOMER_ORDER">
<resultMap id="r_batCtrl" class="java.util.HashMap">
<result property="currDate" column="curr_date" />
</resultMap>
<resultMap class="com.***.product.dto.ProductDTO" id="r_productDTO">
<result property="productId" column="product_id"/>
<result property="productName" column="product_name"/>
<result property="replaceFee" column="replace_fee"/>
<result property="validityePeriod" column="validitye_period"/>
</resultMap>
<resultMap class="com.***.acctype.dto.AccTypeDTO" id="r_accTypeDTO">
<result property="accTypeId" column="acc_type_id"/>
<result property="accTypeName" column="acc_type_name"/>
</resultMap>
<resultMap class="com.***.packag.dto.PackageDTO" id="r_packageDTO">
<result property="packageId" column="package_id"/>
<result property="packageName" column="package_name"/>
<result property="packageFee" column="package_fee"/>
</resultMap>
<resultMap class="com.***.cardlayout.dto.CardLayoutDTO" id="r_cardLayoutDTO">
<result property="cardLayoutId" column="card_layout_id"/>
<result property="cardName" column="card_name"/>
</resultMap>
<resultMap class="com.***.product.dto.ProdFaceValueDTO" id="r_prodFaceValueDTO">
<result property="faceValueId" column="face_value_id"/>
<result property="faceValue" column="face_value"/>
<result property="faceValueType" column="face_value_type"/>
</resultMap>
<resultMap class="com.***.customer.dto.DeliveryPointDTO" id="r_deliveryPointDTO">
<result property="deliveryPointId" column="delivery_point_id"/>
<result property="deliveryPointName" column="delivery_point_name"/>
<result property="recipientsStr" column="recipients_str"/>
</resultMap>
<resultMap class="com.***.customercontract.dto.CustContractDTO" id="r_custContractDTO">
<result property="contractId" column="contract_id"/>
<result property="cardFee" column="card_fee"/>
<result property="annualFee" column="annual_fee"/>
<result property="deliveryFee" column="delivery_fee"/>
</resultMap>
<resultMap class="com.***.customer.dto.InvoiceAddressDTO" id="r_invoiceAddressDTO">
<result property="invoiceAddressId" column="invoice_address_id"/>
<result property="invoiceAddress" column="invoice_address"/>
</resultMap>
<resultMap class="com.***.customer.dto.InvoiceCompanyDTO" id="r_invoiceCompanyDTO">
<result property="invoiceCompanyId" column="invoice_company_id"/>
<result property="invoiceCompanyName" column="invoice_company_name"/>
</resultMap>
<parameterMap class="java.util.HashMap" id="p_orderInput">
<parameter property="o_products" resultMap="r_productDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_product" resultMap="r_productDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_accTypes" resultMap="r_accTypeDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_cardLayouts" resultMap="r_cardLayoutDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_packages" resultMap="r_packageDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_prodFaceValues" resultMap="r_prodFaceValueDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_custContracts" resultMap="r_custContractDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_invoiceAddressList" resultMap="r_invoiceAddressDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_invoiceCompanyList" resultMap="r_invoiceCompanyDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_deliveryPointList" resultMap="r_deliveryPointDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_orderDate" resultMap="r_batCtrl" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_sales" resultMap="TB_ENT_USER.abatorgenerated_UserResult" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_customerName" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
<parameter property="o_serviceFee" javaType="java.math.BigDecimal" jdbcType="DECIMAL" mode="OUT"/>
<parameter property="i_orderType" javaType="Integer" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_customerId" javaType="Long" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_productId" javaType="Long" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_accTypeId" javaType="Short" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_issuerId" javaType="Integer" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_issuerGroupId" javaType="Integer" jdbcType="DECIMAL" mode="IN"/>
</parameterMap>
<parameterMap class="java.util.HashMap" id="p_orderEdit">
<parameter property="o_customerOrder" resultMap="TB_ENT_CUSTOMER_ORDER.abatorgenerated_CustomerOrderResult" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_products" resultMap="r_productDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_cardLayouts" resultMap="r_cardLayoutDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_packages" resultMap="r_packageDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_prodFaceValues" resultMap="r_prodFaceValueDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_sales" resultMap="TB_ENT_USER.abatorgenerated_UserResult" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_accTypes" resultMap="r_accTypeDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_invoiceAddressList" resultMap="r_invoiceAddressDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_invoiceCompanyList" resultMap="r_invoiceCompanyDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_deliveryPointList" resultMap="r_deliveryPointDTO" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" mode="OUT"/>
<parameter property="o_customerName" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
<parameter property="o_issuerName" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
<parameter property="o_productName" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
<parameter property="o_serviceFee" javaType="java.math.BigDecimal" jdbcType="DECIMAL" mode="OUT"/>
<parameter property="i_orderType" javaType="Integer" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_orderId" javaType="Long" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_productId" javaType="Long" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_accTypeId" javaType="Short" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_issuerId" javaType="Integer" jdbcType="DECIMAL" mode="IN"/>
<parameter property="i_issuerGroupId" javaType="Integer" jdbcType="DECIMAL" mode="IN"/>
</parameterMap>
<procedure id="RLOrderInput" parameterMap="p_orderInput">
{call RLOrderInput(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</procedure>
<procedure id="CROrderInput" parameterMap="p_orderInput">
{call CROrderInput(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</procedure>
<procedure id="GSTOrderInput" parameterMap="p_orderInput">
{call GSTOrderInput(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</procedure>
<procedure id="GSLOrderInput" parameterMap="p_orderInput">
{call GSLOrderInput(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</procedure>
<procedure id="RLOrderEdit" parameterMap="p_orderEdit">
{call RLOrderEdit(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</procedure>
<procedure id="CROrderEdit" parameterMap="p_orderEdit">
{call CROrderEdit(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</procedure>
<procedure id="GSTOrderEdit" parameterMap="p_orderEdit">
{call GSTOrderEdit(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</procedure>
<procedure id="GSLOrderEdit" parameterMap="p_orderEdit">
{call GSLOrderEdit(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
</procedure>
</sqlMap>
ORACLE 存儲過程
create or replace procedure RLOrderInput(
o_products out sys_refcursor,
o_product out sys_refcursor,
o_accTypes out sys_refcursor,
o_cardLayouts out sys_refcursor,
o_packages out sys_refcursor,
o_prodFaceValues out sys_refcursor,
o_custContracts out sys_refcursor,
o_invoiceAddressList out sys_refcursor,
o_invoiceCompanyList out sys_refcursor,
o_deliveryPointList out sys_refcursor,
o_orderDate out sys_refcursor,
o_sales out sys_refcursor,
o_customerName out varchar,
o_serviceFee out number,
i_orderType in number,
i_customerId in number,
i_productId in number,
i_accTypeId in number,
i_issuerId in number,
i_issuerGroupId in number)
as
productId number;
begin
productId := -1;
--充值卡訂單:初始頁面查sales/orderDate,選擇客戶查客戶相關及產品列表第一個產品,改變產品查對應產品
--三種狀態:無客戶號、有客戶號無產品號、有客戶號有產品號
if i_customerId!=-1 then--選擇客戶或者改變產品查客戶
begin
getprodsbycustidandptype(o_products,i_customerId,1,1);
getinvoicebycustid(o_invoiceAddressList,o_invoiceCompanyList,i_customerId,1);
getdeliverybycustid(o_deliveryPointList,i_customerId,1);
select t.customer_name into o_customerName from tb_ent_customer t where t.customer_id=i_customerId;
end;
end if;
if i_customerId=-1 then--初始頁面不查客戶
begin
getprodsbycustidandptype(o_products,i_customerId,1,0);
getinvoicebycustid(o_invoiceAddressList,o_invoiceCompanyList,i_customerId,0);
getdeliverybycustid(o_deliveryPointList,i_customerId,0);
end;
end if;
if i_customerId!=-1 and i_productId=-1 then--選擇客戶沒選擇產品後設置爲第一條產品
begin
select t2.product_id into productId
from tb_ent_cust_contract t1,tb_ent_product t2
where t1.product_id=t2.product_id and t1.customer_id=i_customerId and t2.product_type=1
and t2.data_state=1 and t1.data_state=1 and t2.prod_stat=1
and nvl(t1.start_date,sysdate)<=sysdate and nvl(t1.end_date,sysdate)>=sysdate AND ROWNUM=1;
EXCEPTION WHEN NO_DATA_FOUND THEN
NULL;
end;
end if;
if i_productId!=-1 then--產品列表下拉框改變產品設置爲該產品
begin
productId := i_productId;
end;
end if;
if productId!=-1 then--產品列表下拉框改變產品查產品
begin
getprodfororderinput(o_product,productId,1);
getcardlayoutsbyprodid(o_cardLayouts,productId,1);
getpackagesbyprodid(o_packages,productId,1);
getvalidcustcontract(o_custcontracts,i_customerId,productId,1);
end;
end if;
if productId=-1 then--產品列表下拉框改變產品查產品
begin
getprodfororderinput(o_product,productId,0);
getcardlayoutsbyprodid(o_cardLayouts,productId,0);
getpackagesbyprodid(o_packages,productId,0);
getvalidcustcontract(o_custcontracts,i_customerId,productId,0);
end;
end if;
getcurrdateandsales(o_orderDate,o_sales,i_issuerId,i_issuerGroupId,1);
getacctypesbyprodid(o_accTypes,productId,0);
getprodfacevaluesbyprodid(o_prodFaceValues,productId,0);
end RLOrderInput;
其中調用了其他存儲過程
---------------------------------------------------------
注意事項::::::::::::::::::
IBATIS版本2.3.4
每個DTO都寫一個RESULTMAP,無奈吧,不用試了,沒別的好辦法
MYIBATIS配置XML文件似乎更方便一些,這裏只能如此
存儲過程中OUT遊標CURSOR要全部OPEN,不然JAVA異常‘CURSOR IS CLOSED....’
存儲過程難以看懂,維護麻煩,好處是快,這裏如果用DAO可能會訪問數據庫78次,所以存儲過程適用於訪問次數多的情況下