package com.topsun.posclient.sales.core.service.impl; import java.util.ArrayList; import java.util.List; import com.topsun.posclient.common.POSException; import com.topsun.posclient.common.service.impl.BaseServiceImpl; import com.topsun.posclient.datamodel.PartSales; import com.topsun.posclient.datamodel.Retail; import com.topsun.posclient.datamodel.dto.RetailDTO; import com.topsun.posclient.sales.core.SalesDataUtil; import com.topsun.posclient.sales.core.dao.PartSaleDao; import com.topsun.posclient.sales.core.service.IGoldTimeOutService; /** * 投资金条现货服务 * * @author Dong * */ public class GoldTimeOutServiceImpl extends SalesServiceImpl implements IGoldTimeOutService { /** * 零售数据访问 */ private PartSaleDao partSaleDao = new PartSaleDao(); /* (non-Javadoc) * @see com.topsun.posclient.sales.core.service.IGoldTimeOutService#saveGoldTimeOutData(com.topsun.posclient.datamodel.PartSales) */ public void saveGoldTimeOutData(PartSales partSales) throws POSException { RetailDTO retailDTO = new RetailDTO(); Retail retail = convertPartSalesToRetail(partSales); List<Retail> retailList = new ArrayList<Retail>(); retailList.add(retail); retailDTO.setRetailList(retailList); partSaleDao.saveRetailGoldTimeOut(retailDTO, partSales.getDocNum());//保存投资金条现货数据 } /** * 投资金条现货时,将零售信息转换成Retail * @param partSales 销售信息 * @return * @throws POSException */ private Retail convertPartSalesToRetail(PartSales partSales) throws POSException{ if(null == partSales){ return null; } //设置基本信息 Retail retail = SalesDataUtil.getRetailFromPartSales(partSales); //设置明细 retail.setRetailMList(SalesDataUtil.getRetailMsFromPartSales(partSales)); //零售结算 拆分到每个商品的结算金额 retail.setRetailMPList(SalesDataUtil.calculateRetailMPList(partSales)); //零售结算 整单结算金额分配 retail.setRetailPList(SalesDataUtil.calculateRetailPList(partSales)); return retail; } }