⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reportprize.java

📁 一个直销用的管理软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    		}
    		
    		//进行累积扣除金额的计算
    		if(deductWeek == weeks){
    			//当查询周和扣除重复消费正好是同一周(说明这周正好是扣除重复消费)
    			deductPrize = 55000;
    		} else if(deductWeek < weeks && deductWeek!=0){
    			//当查询周在重复消费周以后时,应该求出重复消费周到查询周前一周的所有金额,然后将此金额减去550元
    			//就可以得到累积扣除金额
    			sql = "SELECT * FROM t_userMoney WHERE (years = " + years + ") AND (weeks >= " + deductWeek + ") and weeks< " + weeks + " AND (Userid = '" + dealerID + "')";
    			ResultSet innerRs = oper.getRs(sql);
    			int totalPrize =0;
    			while(innerRs.next()){
    				totalPrize = totalPrize + innerRs.getInt("moneyone") + innerRs.getInt("moneytwo") + innerRs.getInt("moneyoneother");
    			}
    			innerRs.close();
    			
    			if(totalPrize <55000){
    				//说明到查询周仍未还清
    				deductPrize = 55000 - totalPrize;
    			}
    		}
    		rs.close();
    	} catch (SQLException e){
    		log.error("得到一周累积扣除金额时出错:" + e);
    	} finally {
    		oper.closeConn();
    	}
    	return deductPrize;
    }
    
    /**
     * 得到经销商的月报表
     * @return 返回报表的集合
     */
    public List getDealerReportByMonths(){
    	//下面定义的集合用以存储在页面上显示的数据
        List list = new ArrayList();
        
        //得到当前日期,即年份,月份
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        int week = cal.get(Calendar.WEEK_OF_YEAR);
        
        //开发,拓展,重复消费奖,和三种奖金之和
		int moneyonesum = 0;
		int moneytwosum = 0;
		int moneyoneothersum = 0;
		int threemoneysumtotal = 0;
		//重复消费,累积扣除的应该扣除税收各自的总和
		int repeatsum = 0;
		int pilesum = 0;
		int deductsum = 0;
		int twomoneysumtotal = 0;
		//应得奖金总和
		int gainsum = 0;
		
		//得到经销商列表信息
        Dealer dealer = new Dealer();
        List dealerList = dealer.getDealerList();
		//根据经销商列表来查询所有经销商的金额信息
        for(int i=0;i<dealerList.size();i++){
            DBConnectionManager oper = new DBConnectionManager();
 
            //得到此年此月中的几个星期,星期是按顺序排列的
            String sql = "SELECT t_userMoney.weeks FROM t_userMoney,t_usersign where t_userMoney.Userid = t_usersign.Userid and (t_userMoney.years = " + year + ") AND (t_userMoney.months = " + month + ") AND (t_userMoney.Userid = '" + dealerList.get(i) + "') ORDER BY t_userMoney.weeks";
            ResultSet rs = oper.getRs(sql); 
        	try{
        		//开发,拓展,重复消费奖,三种奖金合计
        		int moneyone = 0;
        		int moneytwo = 0;
        		int moneyoneother = 0;
        		int threemoneysum = 0;
        		//重复消费金额,累积扣除,应该扣除的税,三种扣除金额的总和
        		int repeat = 0;
        		int pile = 0;
        		int deduct = 0;
        		int twomoneysum = 0;
        		//应得奖金
        		int gain = 0;
        		
        		//定义javabean,用来存储所有需要的信息
                Franchiser bean = new Franchiser();
        		
                //得到经销商的一些细节信息(调用Dealer类中的getDealerInfo方法)
                Dealer dealerOper = new Dealer();
                List dealerInfo = dealerOper.getDealerInfo(dealerList.get(i).toString());
                bean.setName(dealerInfo.get(0).toString());
                bean.setBank(dealerInfo.get(1).toString());
                bean.setBankcard(dealerInfo.get(2).toString());
                bean.setUserid(dealerList.get(i).toString());
                
        		while(rs.next()){
        			//得到此年,此月,此星期的奖金和
        			//sql = "SELECT t_userMoney.Userid, t_userMoney.MoneyOne, t_userMoney.MoneyTwo, t_userMoney.MoneyOneOther, t_usersign.name,t_userMoney.isflag FROM t_userMoney,t_usersign where t_userMoney.Userid = t_usersign.Userid and (t_userMoney.years = " + year + ") AND (t_userMoney.weeks = " + rs.getInt("weeks") + ") AND (t_userMoney.Userid = '" + dealerList.get(i) + "')";
        			sql = "SELECT t_userMoney.Userid, t_userMoney.MoneyOne, t_userMoney.MoneyTwo, t_userMoney.MoneyOneOther, t_usersign.name, t_userMoney.isflag FROM t_userMoney,t_usersign where t_userMoney.Userid = t_usersign.Userid and (t_userMoney.years = " + year + ") AND (t_userMoney.weeks = " + rs.getInt("weeks") + ") AND (t_userMoney.Userid = '" + dealerList.get(i) + "')";
        			ResultSet weekRs = oper.getRs(sql);
        			while(weekRs.next()){
        				//得到此星期是否扣除重复消费的标识
        				int isflag = weekRs.getInt("isflag");
        				
        				//应得奖金和各自奖金的汇总
        				moneyone = moneyone + weekRs.getInt("moneyone");
        				moneytwo = moneytwo + weekRs.getInt("moneytwo");
        				moneyoneother = moneyoneother + weekRs.getInt("moneyoneother");
        				threemoneysum = threemoneysum + moneyone + moneytwo + moneyoneother;
        				
        				//如果重复消费后的金额为负数,将在本周类将金额补上,否则不进行处理
        				if(pile<0 && (threemoneysum + pile)>=0){
        					//本周已经补清
        					pile = 0;
        				} else if(pile<0 && (threemoneysum + pile)<0) {
        					//本周只能补部分
        					pile = threemoneysum + pile;
        				}
        				
        				//重复消费部分
        				if(isflag==1 && threemoneysum>=88000){
        					repeat = repeat + 55000;
        					pile = threemoneysum - 55000;
        					if(pile>=0){
        						pile = 0;
        					}
        					deduct = deduct + (int)((threemoneysum - 55000 - 88000)*0.07f);
        					twomoneysum = twomoneysum + repeat - pile + deduct;
        				} else if(isflag==1 && threemoneysum<88000){
        					repeat = repeat + 55000;
        					pile = threemoneysum - 55000;
        					if(pile>=0){
        						pile = 0;
        					}
        					twomoneysum = twomoneysum + repeat - pile + deduct;
        				} else if(isflag!=1 && threemoneysum>=88000){
        					deduct = deduct + (int)((threemoneysum - 88000)*0.07f);
        					twomoneysum = twomoneysum - pile + deduct;
        				} else if(isflag!=1 && threemoneysum<88000){
        					twomoneysum = twomoneysum  - pile;
        				}
        				gain = gain + threemoneysum - twomoneysum;
        			}
        			weekRs.close();
        		}
        		bean.setMoneyOneY(Unit.getMoneyByY(moneyone));
        		bean.setMoneyTwoY(Unit.getMoneyByY(moneytwo));
        		bean.setMoneyOneOtherY(Unit.getMoneyByY(moneyoneother));
        		bean.setWeekTotalMoney(Unit.getMoneyByY(threemoneysum));
        		bean.setConsumeMoneyY(Unit.getMoneyByY(repeat));
        		bean.setDedutePrizeY(Unit.getMoneyByY(pile));
        		bean.setSmallTaxY(Unit.getMoneyByY(deduct));
        		bean.setLastPrizeY(Unit.getMoneyByY(twomoneysum));
        		bean.setGainedPrizeY(Unit.getMoneyByY(gain)); //实发奖金
        		list.add(bean);
				
        		//得到总金额
    			moneyonesum = moneyonesum + moneyone;
				moneytwosum = moneytwosum + moneytwo;
				moneyoneothersum = moneyoneothersum + moneyoneother;
				threemoneysumtotal = threemoneysumtotal + threemoneysum;
    			repeatsum = repeatsum + repeat;
        		deductsum = deductsum + deduct;
        		pilesum = pilesum + pile;
        		twomoneysumtotal = twomoneysumtotal + twomoneysum;
        		gainsum = gainsum + gain;
        		reportBean.setOpenUpPrizeY(Unit.getMoneyByY(moneyonesum));
        		reportBean.setColonizePrizeY(Unit.getMoneyByY(moneytwosum));
        		reportBean.setRepeatConsumePrizeY(Unit.getMoneyByY(moneyoneothersum));
        		reportBean.setTotalPrizeY(Unit.getMoneyByY(threemoneysumtotal));
        		reportBean.setRepeatConsumeY(Unit.getMoneyByY(repeatsum));
        		reportBean.setTotalDeductPrizeY(Unit.getMoneyByY(pilesum));
        		reportBean.setTaxY(Unit.getMoneyByY(deductsum));
        		reportBean.setTotalTaxY(Unit.getMoneyByY(twomoneysumtotal));
        		reportBean.setTotalGainedPrizeY(Unit.getMoneyByY(gainsum));
        		rs.close();
        	} catch (SQLException e){
        		log.error("得到月报表信息时出错:" + e);
        	} finally {
        		oper.closeConn();
        	}
        }
        
        //返回月报表的集合
        return list;
    }
    
    public static void main(String[] args){
        ReportPrize oper = new ReportPrize();
        List list = oper.getDealerReportByWeek();
        
        for(int i =0;i<list.size();i++){
        	Franchiser bean = (Franchiser)list.get(i);
        	System.out.println(bean.getUserid());
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -