<!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>