车辆派遣管理系统第二周业务管理单车月结算

1、今日完成任务:
(1)完成业务管理-单车月结算模块的代码书写及测试工作
在这里插入图片描述
2、核心源码:

package com.dw.controller;


import java.net.URLEncoder;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.dw.entity.Count;
import com.dw.service.CountService;




@Controller
public class CountController {
	@Autowired
	private CountService cs;
	@RequestMapping("/saveCount")
	@ResponseBody
	public void saveCount(Count count){
		try {
			cs.save(count);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	@RequestMapping("/queryAllCount")
	@ResponseBody
	public List<Count> queryAllCount(String year,String month){
			try {
				List<Count> list = cs.queryAll(year,month);
				return list;
			} catch (Exception e) {
				e.printStackTrace();
				return null;
			}
	}
}
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>单车月结算</title>
		<link rel="stylesheet" type="text/css" href="../../js/easyui/themes/default/easyui.css"/>
		<link rel="stylesheet" type="text/css" href="../../js/easyui/themes/icon.css"/>
		<link rel="stylesheet" type="text/css" href="../../js/easyui/ext/portal.css"/>
		<link rel="stylesheet" type="text/css" href="../../css/default.css"/>
		<script src="../../js/jquery-1.8.3.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../js/easyui/jquery.easyui.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../js/easyui/ext/jquery.portal.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../js/easyui/locale/easyui-lang-zh_CN.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			var totalcost = 0;//费用总计
			var profit = 0;//毛利润
			$(function(){
				$('#dg').datagrid({
					toolbar: [{
						id: 'count',
						text:'月结算',
						iconCls: 'icon-edit',
						handler: function(){
							$("#ff").form('reset');
							var rows = $('#dg').datagrid('getRows');
							var turnover = 0;//总营业额
							var totalkilometer = 0;//总公里数
							var totalgas = 0;//总油费
							var totaltoll = 0;//总过路费
							var totalparking = 0;//总停车费
							var totalrepair = 0;//总修理费
							var totaltire = 0;//总轮胎费
							var totalsubsidy = 0;//总车补贴
							for (var i = 0; i < rows.length; i++) {
								turnover += rows[i].check.checkmoney;
								totalkilometer += rows[i].check.kilometer;
								totalgas += rows[i].check.gas;
								totaltoll += rows[i].check.toll;
								totalparking += rows[i].check.parking;
								totalrepair += rows[i].check.repair;
								totaltire += rows[i].check.tire;
								totalsubsidy += rows[i].check.subsidy;
							}
							totalcost = totalgas+totaltoll+totalparking+totalrepair+totaltire+totalsubsidy;
							profit = turnover - totalcost;
							$("#carnumber").val($("#carSelect").combobox('getText'));
							$("#countyear").val($("#year").combobox('getText'));
							$("#countmonth").val($("#month").combobox('getText'));
							$("#turnover").val(turnover);
							$("#totalkilometer").val(totalkilometer);
							$("#totalgas").val(totalgas);
							$("#totaltoll").val(totaltoll);
							$("#totalparking").val(totalparking);
							$("#totalrepair").val(totalrepair);
							$("#totaltire").val(totaltire);
							$("#totalsubsidy").val(totalsubsidy);
							$("#totalcost").val(totalcost);
							$("#profit").val(profit);
							$("#remark").val('');
							$("#win").window('open');
						}
					},'-',{
						text:'车牌号:<input id="carSelect"/>'
					},'-',{
						text:'结算年份:<input id="year"/>'
					},'-',{
						text:'结算月份:<input id="month"/>'
					},'-',{
						text:'查询',
						iconCls: 'icon-search',
						handler:function(){
							var carid = $("#carSelect").combobox('getValue');
							var year = $("#year").combobox('getText');
							var month = $("#month").combobox('getText');
							if(carid==null || carid==''){
								$.messager.alert('提示信息','请选择要查询的车牌号!','warning');
							}else if(year==null || year==''){
								$.messager.alert('提示信息','请选择要查询的结算年份!','warning');
							}else if(month==null || month==''){
								$.messager.alert('提示信息','请选择要查询的结算月份!','warning');
							}else{
								$('#dg').datagrid('load',{
									carid: carid,
									year: year,
									month: month,
									status:-1,
									onLoadSuccess:function(){
										$('#count').linkbutton('enable');
									}
								});
							}
						}
					}]
				});
				$('#count').linkbutton('disable');
				$("#carSelect").combobox({
				    url:'../../queryAllCar',    
				    valueField:'id',    
				    textField:'carnumber'
				});
				var years = [{id:new Date().getFullYear()-2},{id:new Date().getFullYear()-1},{id:new Date().getFullYear()}];
				$("#year").combobox({
				    data:years,
				    valueField:'id',    
				    textField:'id',
				    onSelect:function(val){
				    	var months = [];
				    	var currMonth = 12;
						if(val.id==new Date().getFullYear()){
							currMonth = new Date().getMonth()+1;
						}
						for(var i=0;i<currMonth;i++){
							var monthValue = {};
							monthValue.id = "0"+(i+1);
							months.push(monthValue);
						}
						$("#month").combobox('loadData',months);
				    }
				});
				$("#month").combobox({
				    valueField:'id',    
				    textField:'id'
				});
				$("#save").click(function(){
					if($("#ff").form('validate')){
						$("#ff").form('submit',{
							success:function(data){
								$("#win").window('close');
								$("#dg").datagrid('reload');
						    }
						});
					}else{
						$.messager.alert('警告','表单中包含非法数据!','warning');
					}
				});
			});
			function changeTotal(){
				$("#totalcost").val(totalcost);
				$("#profit").val(profit);
				var total = Number($("#salary").val())+Number($("#gpsmoney").val())+Number($("#premium").val())+Number($("#loan").val())+Number($("#dividend").val())+Number($("#totalcost").val());
				$("#totalcost").val(total);
				$("#profit").val($("#turnover").val()-total);
			}
		</script>
	</head>
	<body>
		<table id="dg" class="easyui-datagrid"
        data-options="url:'../../queryAllDispatch',fitColumns:true,rownumbers:true,queryParams:{status:'-1'}">   
			<thead>   
				<tr>   
					<th data-options="field:'id',width:70,align:'center'">派车单号</th>   
					<th data-options="field:'car.carnumber',width:80,align:'center',formatter: function(value,row,index){return row.car.carnumber;}">车牌号码</th>   
					<th data-options="field:'senddate',width:100,align:'center'">出车日期</th>   
					<th data-options="field:'start',width:120,align:'center'">起始地点</th>   
					<th data-options="field:'customer.company',width:100,align:'center',formatter: function(value,row,index){return row.customer.company;}">用车单位</th>   
					<th data-options="field:'check.checkmoney',width:70,align:'center',formatter: function(value,row,index){return row.check==null?'':row.check.checkmoney;}">审核金额</th>     
					<th data-options="field:'check.gas',width:70,align:'center',formatter: function(value,row,index){return row.check==null?'':row.check.gas;}">油费</th>     
					<th data-options="field:'check.toll',width:70,align:'center',formatter: function(value,row,index){return row.check==null?'':row.check.toll;}">过路费</th>     
					<th data-options="field:'check.parking',width:70,align:'center',formatter: function(value,row,index){return row.check==null?'':row.check.parking;}">停车费</th>     
					<th data-options="field:'check.repair',width:70,align:'center',formatter: function(value,row,index){return row.check==null?'':row.check.repair;}">修理费</th>     
					<th data-options="field:'check.tire',width:70,align:'center',formatter: function(value,row,index){return row.check==null?'':row.check.tire;}">轮胎费</th>     
					<th data-options="field:'check.subsidy',width:70,align:'center',formatter: function(value,row,index){return row.check==null?'':row.check.subsidy;}">车补贴</th>     
					<th data-options="field:'status',width:90,align:'center',formatter: function(value,row,index){if(row.status==-1){return '未审核未收款';}else if(row.status==0){return '已审核未收款';}else{return '已审核已收款';}}">状态</th>
				</tr>   
			</thead>
		</table>
		<div id="win" class="easyui-window" title="单车月结算" style="width:1000px;height:450px;"   
		        data-options="modal:true,minimizable:false,maximizable:false,closed:true">
			<div class="datagrid-toolbar">
				<a id="save" href="#" class="easyui-linkbutton" icon="icon-save">保存</a>
			</div>
		    <form id="ff" method="post" action="../../saveCount">
				<table class="table-edit" align="center" width="80%">
					<tr class="title">
						<td colspan="6">单车月结算</td>
					</tr>
					<tr>
						<td>车牌号码:</td>
						<td><input id="carnumber" class="easyui-textbox" type="text" name="carnumber" data-options="required:true" readonly="readonly"/></td>
						<td>操作日期:</td>
						<td><input class="easyui-datebox" type="text" name="operatedate" data-options="required:true"/></td>
					</tr>
					<tr>
						<td>结算年份:</td>
						<td><input id="countyear" class="easyui-textbox" type="text" name="countyear" data-options="required:true" readonly="readonly"/></td>
						<td>结算月份:</td>
						<td><input id="countmonth" class="easyui-textbox" type="text" name="countmonth" data-options="required:true" readonly="readonly"/> </td>
					</tr>
					<tr>
						<td>总营业额:</td>
						<td><input id="turnover" class="easyui-textbox" type="text" name="turnover" data-options="required:true" readonly="readonly" /></td>
						<td>总公里数:</td>
						<td><input id="totalkilometer" class="easyui-textbox" type="text" name="totalkilometer" data-options="required:true" readonly="readonly"/></td>
					</tr>
					<tr>
						<td>油费:</td>
						<td><input id="totalgas" class="easyui-textbox" type="text" name="totalgas" data-options="required:true" readonly="readonly"/></td>
						<td>过路费:</td>
						<td><input id="totaltoll" class="easyui-textbox" type="text" name="totaltoll" data-options="required:true" readonly="readonly"/></td>
						<td>停车费:</td>
						<td><input id="totalparking" class="easyui-textbox" type="text" name="totalparking" data-options="required:true" readonly="readonly"/></td>
					</tr>
					<tr>
						<td>修理费:</td>
						<td><input id="totalrepair" class="easyui-textbox" type="text" name="totalrepair" data-options="required:true" readonly="readonly"/></td>
						<td>轮胎费:</td>
						<td><input id="totaltire" class="easyui-textbox" type="text" name="totaltire" data-options="required:true" readonly="readonly"/></td>
						<td>车补贴:</td>
						<td><input id="totalsubsidy" class="easyui-textbox" type="text" name="totalsubsidy" data-options="required:true" readonly="readonly"/></td>
					</tr>
					<tr>
						<td>工资:</td>
						<td><input id="salary" class="easyui-numberbox" type="text" name="salary" data-options="required:true" onchange="changeTotal()"/></td>
						<td>GPS费用:</td>
						<td><input id="gpsmoney" class="easyui-numberbox" type="text" name="gpsmoney" data-options="required:true" onchange="changeTotal()"/></td>
						<td>保险费:</td>
						<td><input id="premium" class="easyui-numberbox" type="text" name="premium" data-options="required:true" onchange="changeTotal()"/></td>
					</tr>
					<tr>
						<td>还贷:</td>
						<td><input id="loan" class="easyui-numberbox" type="text" name="loan" data-options="required:true" onchange="changeTotal()"/></td>
						<td>分红:</td>
						<td><input id="dividend" class="easyui-numberbox" type="text" name="dividend" data-options="required:true" onchange="changeTotal()"/></td>
					</tr>
					<tr>
						<td>费用总计:</td>
						<td><input id="totalcost" class="easyui-textbox" type="text" name="totalcost" data-options="required:true" readonly="readonly"/></td>
						<td>毛利润:</td>
						<td><input id="profit" class="easyui-textbox" type="text" name="profit" data-options="required:true" readonly="readonly"/></td>
					</tr>
					<tr>
						<td>备注:</td>
						<td><input id="remark" class="easyui-textbox" type="text" name="remark" data-options="required:true"/></td>
					</tr>
				</table>
			</form>  
		</div>  
	</body>
</html>

3、遇到的问题:
(1)动态显示结算年份和结算月份
4、解决的方法:
(1)自制一个动态显示结算年份和结算月份的插件

var years = [{id:new Date().getFullYear()-2},{id:new Date().getFullYear()-1},{id:new Date().getFullYear()}];
				$("#year").combobox({
				    data:years,
				    valueField:'id',    
				    textField:'id',
				    onSelect:function(val){
				    	var months = [];
				    	var currMonth = 12;
						if(val.id==new Date().getFullYear()){
							currMonth = new Date().getMonth()+1;
						}
						for(var i=0;i<currMonth;i++){
							var monthValue = {};
							monthValue.id = "0"+(i+1);
							months.push(monthValue);
						}
						$("#month").combobox('loadData',months);
				    }
				});
				$("#month").combobox({
				    valueField:'id',    
				    textField:'id'
				});

5、项目燃尽图更新:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值