<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ page
language="java"
contentType="text/html; charset=GBK"
pageEncoding="GBK"
%>
<%@ page import="com.pcm.sale.month.model.AreaandRateModel"%>
<%@ page import="com.pcm.sale.month.model.SaleMonthForecastListModel"%>
<%@ page import="com.pcm.sale.month.model.LineAcountModel"%>
<%@ page import="java.util.*"%>
<%@ page import="java.text.NumberFormat"%>
<%@ page import="java.text.DecimalFormat"%>
<META http-equiv="Content-Type" content="text/html; charset=GBK">
<META name="GENERATOR" content="IBM WebSphere Studio">
<META http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" href="<html:rewrite page='/'/>style/style.css" type="text/css">
<TITLE>销售任务完成情况</TITLE>
</HEAD>
<BODY>
<%!
int i=1;
int lineSumUnnifinish=0;
int lineSumSaleTotal=0;
int lineSumProvinceTotal=0;
int lineSumRealGoods=0;
int lineSumSaleAim=0;
ArrayList products=null;
String tempProductListName="";
HashMap pal;
List dataList=null;
LineAcountModel lamToo=null;
%>
<%!
public String changeRate(double f){
DecimalFormat df=new DecimalFormat();
df.applyPattern("#,###############################0.00");
String s=df.format(f);
return s;
}
%>
<logic:notPresent name="RealGoodsTotalListForm" property="monthResult">
<table border="0" align="center" cellpadding="0" cellspacing="0">
</table>
</logic:notPresent>
<logic:present name="RealGoodsTotalListForm" property="monthResult">
<table width="582" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#CCCCCC">
<%
List ar=(List)session.getAttribute("ar");
dataList=(List)session.getAttribute("dataList");
if(dataList == null || dataList.size() == 0)
{%>
<TR bgcolor="FFFFFF" align="center"><td><FONT COLOR="#FF0000"><B>没有此月份的销售完成情况报表数据</B></FONT></td></TR>
<%
return;
}
String parentAreaNameToo=((AreaandRateModel)ar.get(0)).getParentAreaName();
String area=((AreaandRateModel)ar.get(0)).getArea();
long sumTotal=0;
int sumrealGoodsTotal=0;
long LastSumGoods=0;
int lineSumUnifinish=0;
int linetSaleTotal=0;
for(int b=0;b<dataList.size();b++){
if((((SaleMonthForecastListModel)dataList.get(b)).getArea()).equals(area))
sumTotal+=((SaleMonthForecastListModel)dataList.get(b)).getSaleTotal();
}
products=new ArrayList();
for(int c=0;c<dataList.size();c++){
String areaCompareFive=((SaleMonthForecastListModel)dataList.get(c)).getArea();
int productId=((SaleMonthForecastListModel)dataList.get(c)).getProductId();
if(areaCompareFive.equals(area))
products.add(new Integer(productId));
}
//System.out.println("products :"+products);
ArrayList parentAreaNames=new ArrayList();
parentAreaNames.add(parentAreaNameToo);
for(int o=0;o<ar.size();o++){
String parentAreaNameCom=((AreaandRateModel)ar.get(o)).getParentAreaName();
if(!parentAreaNameCom.equals(parentAreaNameToo)){
parentAreaNameToo=parentAreaNameCom;
parentAreaNames.add(parentAreaNameToo);
}
}
//System.out.println("parentAreaNames :"+parentAreaNames);
HashMap P_sumRate=new HashMap();
HashMap P_sumProvince=new HashMap();
for(int m=0;m<parentAreaNames.size();m++){
int areaPartProvince=0;
float areaPartRate=0.0f;
String parentAreaNameTwo=(String)parentAreaNames.get(m);
for(int n=0;n<ar.size();n++){
String parentAreaNameThree=((AreaandRateModel)ar.get(n)).getParentAreaName();
if(parentAreaNameTwo.equals(parentAreaNameThree)){
areaPartRate+=((AreaandRateModel)ar.get(n)).getRate();
areaPartProvince++;
}
}
System.out.println("areaPartRate="+new Float(areaPartRate));
P_sumRate.put(parentAreaNameTwo,new Float(areaPartRate));
P_sumProvince.put(parentAreaNameTwo,new Integer(areaPartProvince));
}
%>
<%--按地区统计的HashMap--%>
<%
ArrayList listLine=null;
String tempListParentArea="";
pal=new HashMap();
for(int r=0;r<dataList.size();r++){
String listParentArea=((SaleMonthForecastListModel)dataList.get(r)).getParentAreaName();
if(!tempListParentArea.equals(listParentArea)){
tempListParentArea=listParentArea;
listLine=new ArrayList();
listLine.add((SaleMonthForecastListModel)dataList.get(r));
pal.put(listParentArea,listLine);
//System.out.println("listParentArea="+listParentArea);
}
else{
listLine.add((SaleMonthForecastListModel)dataList.get(r));
}
}
//System.out.println("pal="+pal.size());
%>
<%!
ArrayList getParentList(String BigArea){
ArrayList parentList=(ArrayList)pal.get(BigArea);
ArrayList productInfo=new ArrayList();
//System.out.println("parentList大区产品="+parentList.size());
for(int ii=0;ii<products.size();ii++){
lamToo=new LineAcountModel();
int productIdLine=((Integer)products.get(ii)).intValue();
for(int jj=0; jj<parentList.size(); jj++){
int productListIdToo=((SaleMonthForecastListModel)parentList.get(jj)).getProductId();
//System.out.println("productListIdToo是="+productListIdToo);
if(productIdLine==productListIdToo){
//System.out.println("productIdLine==productListIdToo:"+productIdLine);
lineSumUnnifinish+=((SaleMonthForecastListModel)parentList.get(jj)).getUnfinishTotal();
//System.out.println(((SaleMonthForecastListModel)parentList.get(jj)).getUnfinishTotal());
//System.out.print("-----------");
//System.out.println(i++);
lineSumSaleTotal+=((SaleMonthForecastListModel)parentList.get(jj)).getSaleTotal();
lineSumProvinceTotal+=((SaleMonthForecastListModel)parentList.get(jj)).getProvinceSaleTotal();
lineSumRealGoods+=((SaleMonthForecastListModel)parentList.get(jj)).getGoodsTotal();
lineSumSaleAim=lineSumUnnifinish+lineSumProvinceTotal;
lamToo.setLineSumProvinceTotal(lineSumProvinceTotal);
lamToo.setLineSumRealGoods(lineSumRealGoods);
lamToo.setLineSumSaleAim(lineSumSaleAim);
lamToo.setLineSumSaleTotal(lineSumSaleTotal);
lamToo.setLineSumUnnifinish(lineSumUnnifinish);
}
}
lineSumUnnifinish=0;
lineSumSaleTotal=0;
lineSumProvinceTotal=0;
lineSumRealGoods=0;
lineSumSaleAim=0;
productInfo.add(lamToo);
}
return productInfo;
}
%>
<caption><%=((SaleMonthForecastListModel)dataList.get(0)).getSaleMonth()%> 月 份 销 售 任 务 完 成 情 况</caption>
<tr align="center" bgcolor="fcf2cd" class="css">
<td class="css"> 大 区 </td> <td noWrap class="css"> 省 份 </td><td> 比例 </td>
<%
for(int i=0;i<dataList.size();i++){
SaleMonthForecastListModel amflModel=(SaleMonthForecastListModel)dataList.get(i);
String areatoo=amflModel.getArea();
if(area.equals(areatoo)){
%>
<td noWrap><%=amflModel.getProductName()%>上月<br>未完成任务</td>
<td noWrap><%=amflModel.getProductName()%>任务</td>
<td noWrap><%=amflModel.getProductName()%>总任务</td>
<td noWrap>实际提货量</td>
<td noWrap>任务完成率</td>
<%
}
}
%>
<td noWrap>总体任务</td><td noWrap>总提货量</td><td noWrap>总体任务<br>完成率</td>
</tr>
<%--第二部分--%>
<%
int sumProducts=products.size();
int begin=0;
int end=sumProducts;
for(int x=0; x<parentAreaNames.size(); x++){
String parentListAreaNameToo=(String)parentAreaNames.get(x);
//System.out.println("parentListAreaNameToo最外成大区="+parentListAreaNameToo);
int areaProvinces=0;
float areaRate=0.0f;
float completeRate=0.0f;
float sumCompleteRate=0.0f;
String tempParentAreaName=null;
if(ar.size()>0)
tempParentAreaName=((AreaandRateModel)ar.get(0)).getParentAreaName();
for(int i=0;i<ar.size();i++){
String FparentAreaName=((AreaandRateModel)ar.get(i)).getParentAreaName();
String areaCompareOne=((AreaandRateModel)ar.get(i)).getArea();
String parentAreaName=((AreaandRateModel)ar.get(i)).getParentAreaName();
String areaName=((AreaandRateModel)ar.get(i)).getAreaName();
int sumGoodsTotal=0;
float rate=((AreaandRateModel)ar.get(i)).getRate();
if(((String)parentAreaNames.get(x)).equals(FparentAreaName)){
//System.out.println("arrayParentArea[x]:"+arrayParentArea[x]);
%>
<tr bgcolor="FFFFFF" class="css">
<%
if(i==0)
{
areaProvinces=((Integer)P_sumProvince.get(tempParentAreaName)).intValue();
areaRate=((Float)P_sumRate.get(tempParentAreaName)).floatValue();
%>
<td rowspan='<%=areaProvinces+1%>'><%=tempParentAreaName%><%=changeRate(areaRate)%>%</td>
<%
}
if(!tempParentAreaName.equals(parentAreaName))
{
tempParentAreaName = parentAreaName;
areaProvinces=((Integer)P_sumProvince.get(tempParentAreaName)).intValue();
areaRate=((Float)P_sumRate.get(tempParentAreaName)).floatValue();
;
System.out.println("areaRate="+areaRate);
%>
<td rowspan='<%=areaProvinces+1%>'><%=tempParentAreaName%><%=changeRate(areaRate)%>%</td>
<%
}
%>
<td><%=areaName%></td><td><%=changeRate(rate)%>%</td>
<%
for(int j=0;j<dataList.size();j++){
String areaCompareTwo=((SaleMonthForecastListModel)dataList.get(j)).getArea();
if(areaCompareTwo.equals(areaCompareOne)){
%>
<td><%=((SaleMonthForecastListModel)dataList.get(j)).getUnfinishTotal()%></td>
<td><%=((SaleMonthForecastListModel)dataList.get(j)).getProvinceSaleTotal()%></td>
<%
int sumAim=((SaleMonthForecastListModel)dataList.get(j)).getUnfinishTotal()+((SaleMonthForecastListModel)dataList.get(j)).getProvinceSaleTotal();
int goodsTotal=((SaleMonthForecastListModel)dataList.get(j)).getGoodsTotal();
sumGoodsTotal+=goodsTotal;
%>
<td><%=sumAim%></td>
<td><%=goodsTotal%></td>
<%
if(sumAim==0 || goodsTotal==0){
%>
<td>0.00%</td>
<%
}
else{
completeRate=goodsTotal*100/sumAim;
%>
<td><%=changeRate(completeRate)%>%</td>
<%
}
%>
<%
}
}
LastSumGoods+=sumGoodsTotal;
sumCompleteRate+=completeRate;
%>
<td><%=new Float(sumTotal/100*rate).intValue()%></td><td><%=sumGoodsTotal%></td><td><%=changeRate(sumCompleteRate)%>%</td>
<%
sumGoodsTotal=0;
%>
</tr>
<%
}
}
%>
<tr bgcolor="FFFFFF" class="css"><td>合计</td><td><%=changeRate(areaRate)%>%</td>
<%
int i=1;
int sumLineSumSaleAim=0;
int sumLineSumRealGoodsToo=0;
float countRate=0.0f;
float sumCountRate=0.0f;
ArrayList productsInfo=getParentList(parentListAreaNameToo);
//System.out.println("productsInfo的大小呵呵 fsdgfdsgfdsgfdsgfsdgfds合乎="+productsInfo.size());
for(int y=0;y<products.size();y++){
int LineSumUnnifinishToo=((LineAcountModel)productsInfo.get(y)).getLineSumUnnifinish();
int LineSumProvinceTotalToo=((LineAcountModel)productsInfo.get(y)).getLineSumProvinceTotal();
int LineSumSaleAim=((LineAcountModel)productsInfo.get(y)).getLineSumSaleAim();
int LineSumRealGoodsToo=((LineAcountModel)productsInfo.get(y)).getLineSumRealGoods();
if(LineSumSaleAim==0){
countRate=0.00f;
}
else{
countRate=LineSumRealGoodsToo*100/LineSumSaleAim;
}
sumLineSumSaleAim+=LineSumSaleAim;
sumLineSumRealGoodsToo+=LineSumRealGoodsToo;
if(sumLineSumSaleAim==0){
sumCountRate=0.0f;
}
else{
sumCountRate=sumLineSumRealGoodsToo*100/sumLineSumSaleAim;
}
%>
<td><%=LineSumUnnifinishToo%></td>
<td><%=LineSumProvinceTotalToo%></td>
<td><%=LineSumSaleAim%></td>
<td><%=LineSumRealGoodsToo%></td>
<td><%=changeRate(countRate)%>%</td>
<%
}
%>
<td><%=sumLineSumSaleAim%></td><td><%=sumLineSumRealGoodsToo%></td><td><%=changeRate(sumCountRate)%>%</td>
</tr>
<%
sumLineSumSaleAim=0;
sumLineSumRealGoodsToo=0;
}
%>
<%--第三部分--%>
<tr bgcolor="FFFFFF" class="css">
<%
float sumRate=0.0f;
for(int a=0;a<ar.size();a++){
sumRate+=((AreaandRateModel)ar.get(a)).getRate();
}
%>
<td>总计</td><td></td><td><%=changeRate(sumRate)%>%</td>
<%
int sumUnfinish=0;
int saleTotal=0;
sumrealGoodsTotal = 0;
for(int d=0;d<products.size();d++){
int productId=((Integer)products.get(d)).intValue();
for(int e=0;e<dataList.size();e++){
int comparePId=((SaleMonthForecastListModel)dataList.get(e)).getProductId();
if(productId==comparePId){
sumUnfinish+=((SaleMonthForecastListModel)dataList.get(e)).getUnfinishTotal();
sumrealGoodsTotal+=((SaleMonthForecastListModel)dataList.get(e)).getGoodsTotal();
}
}
for(int f=0;f<dataList.size();f++){
String compareAreaSix=((SaleMonthForecastListModel)dataList.get(f)).getArea();
int compareOnePId=((SaleMonthForecastListModel)dataList.get(f)).getProductId();
if(compareAreaSix.equals(area) && productId==compareOnePId){
saleTotal=((SaleMonthForecastListModel)dataList.get(f)).getSaleTotal();
}
}
%>
<td><%=sumUnfinish%></td>
<td><%=saleTotal%></td>
<%
int sumTotalCount=sumUnfinish+saleTotal;
%>
<td><%=sumTotalCount%></td>
<td><%=sumrealGoodsTotal%></td>
<%
if(sumTotalCount==0){
%>
<td>0.00%</td>
<%
}
else{
%>
<td><%=changeRate(sumrealGoodsTotal*100/sumTotalCount)%>%</td>
<%
}
%>
<%
sumUnfinish=0;
sumrealGoodsTotal=0;
}
%>
<td><%=sumTotal%></td><td><%=LastSumGoods%></td>
<%
if(sumTotal==0){
%>
<td>0.00%</td>
<%
}
else{
%>
<td><%=changeRate(LastSumGoods*100/sumTotal)%>%</td>
<%
}
%>
</tr>
</table>
<br>
任务量总计: <%=sumTotal%> 总提货量: <%=LastSumGoods%>
</logic:present>
</BODY>
</HTML>