第三周项目功能实现
一、这周完成的功能:
a.结算明细
b.单车查询
c.主界面
二、核心源码:
1、Mapper配置文件
<select id="findByTime" parameterType="com.hp.bean.Settlement" resultType="com.hp.bean.Settlement">
select * from settlement s, carinfo c where s.carId = c.carId
<if test="setyear != null and setyear != ''">
and s.setyear = #{setyear}
</if>
<if test="setmonth != null and setmonth != ''">
and s.setmonth = #{setmonth}
</if>
<if test="carId != null and carId != ''">
and s.carId = #{carId}
</if>
</select>
<select id="findByCarid" resultType="com.hp.bean.Settlement">
select * from settlement s, carinfo c where s.carId = c.carId and s.carId = #{carId}
</select>
<select id="getRenTotal" resultType="com.hp.bean.Rental">
select date_format(d.outDate,'%Y-%m') as y, sum(e.carRental) as money
from dispatchlist d, expenses e where d.disId = e.disId
group by date_format(d.outDate,'%Y-%m')
</select>
<select id="getActTotal" resultType="com.hp.bean.Actual">
select date_format(d.outDate,'%Y-%m') as y, sum(e.actualAmount) as a
from dispatchlist d, expenses e where d.disId = e.disId
group by date_format(d.outDate,'%Y-%m')
</select>
<select id="findDispOrder" resultMap="baseResultMap" parameterType="string">
select d.*,c.cstName,c.cstContact,c.cstPhone,car.carNum,dr.driName,
s.salName,e.actualAmount,e.discount,e.carRental from dispatchlist d, customer c,
carinfo car, driver dr, expenses e, salesman s where d.cstId = c.cstId
and d.carId = car.carId and d.driId = dr.driId and d.salId = s.salId
and d.disId = e.disId order by d.outDate desc limit 0,5
</select>
<select id="getReceSum" resultType="com.hp.bean.Finance">
select sum(receivable) receivable, sum(received) received, sum(arrears) arrears
from finance
</select>
2、service接口编写
public interface DispatchlistService {
public Settlement getAllSum(Condition condition);
public Result getRenTotal();public
List<Settlement> findByTime(Settlement settlement);
public List<Expense> findDispExp(Integer carId);
}
3、service实现类编写
@Service("dispatchlistService")
@Transactional
public class DispatchlistServiceImpl implements DispatchlistService{
@Autowired
private BaseDao baseDao;
@Override
public Settlement getAllSum(Condition condition) {
return (Settlement) baseDao.findForObject("DispatchlistMapper.getAllSum", condition);
}
@Override
public Result getRenTotal() {
List<Rental> rlist = (List<Rental>) baseDao.findForList("DispatchlistMapper.getRenTotal", null);
List<Actual> alist = (List<Actual>) baseDao.findForList("DispatchlistMapper.getActTotal", null);
Finance finance = (Finance) baseDao.findForObject("FinanceMapper.getReceSum", null);
List<Dispatchlist> olist = (List<Dispatchlist>) baseDao.findForList("DispatchlistMapper.findDispOrder", null);
return new Result(rlist, alist, finance,olist);
}
@Override
public List<Settlement> findByTime(Settlement settlement) {
// TODO Auto-generated method stub
return (List<Settlement>) baseDao.findForList("SettlementMapper.findByTime", settlement);
}
@Override
public List<Expense> findDispExp(Integer carId) {
// TODO Auto-generated method stub
return (List<Expense>) baseDao.findForList("SettlementMapper.findDispExp", carId);
}
}
4、controller控制层编写
@Controller
@Scope("prototype")
public class DispatchlistController {
@Autowired
private DispatchlistService dispatchlistService;
@Autowired
private SettlementService settlementService;
@RequestMapping(value="/tofee")
@ResponseBody
public String tofee(String disId) {
return "collectfee.html?disId="+disId;
}
@RequestMapping(value = "/getRenTotal",produces = {"application/json;charset=UTF-8"},method = RequestMethod.POST)
@ResponseBody
public String getRenTotal() {
Result result = dispatchlistService.getRenTotal();
return JSONObject.fromObject(result).toString();
}
@RequestMapping(value = "/findAllSet", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ResponseBody
public String findAllSet(Settlement settlement) {
List<Settlement> list = settlementService.findByTime(settlement);
return JSONArray.fromObject(list).toString();
}
@RequestMapping(value = "/export")
@ResponseBody
public void export(Settlement settlement, HttpServletResponse response) {
List<Settlement> list = settlementService.findByTime(settlement);
String[] headerName = { "结算编号","车辆编号", "操作时间", "年份","月份","总营业额", "总公里数",
"工资","油费","过桥费", "停车费", "停车费","轮胎费","车补贴", "保险费", "分红", "毛利润", "备注", "车牌号码"};
String[] headerKey = { "seId","carId", "operation", "setyear","setmonth","totalBusi", "totalKilom",
"salary","oilTotal","bridgeTotal", "stopTotal", "repairTotal","tyreTotal","subsubsidy",
"premium", "bonus","profit","finRemark", "carNum"};
HSSFWorkbook wb = ExcelUtils.createExcel(headerName, headerKey, "结算明细报表", list);
String fileName = "结算明细报表";
try{
response.setContentType("application/octet-stream;charset=utf-8");
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.setHeader("Content-disposition",
"attachment;filename=" + new String(fileName.getBytes(), "iso-8859-1") + ".xls");
OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@RequestMapping(value = "/findDispExp", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
@ResponseBody
public String findDispExp(Integer carId) {
List<Expense> list = settlementService.findDispExp(carId);
return JSONArray.fromObject(list).toString();
}
@RequestMapping(value = "/exportExp")
@ResponseBody
public void exportExp(Integer carId, HttpServletResponse response) {
List<Expense> list = settlementService.findDispExp(carId);
String[] headerName = { "车牌号码","订单号", "出车日期", "实际金额","油费","过桥费", "停车费", "停车费","轮胎费","车补贴", "公里数"};
String[] headerKey = { "carNum","disId", "outDate", "actualAmount","oilExp","oilExp", "bridgeExp",
"stopExp","repairExp","tyreExp", "subsidy", "mileage"};
HSSFWorkbook wb = ExcelUtils.createExcel(headerName, headerKey, "单车派车单明细报表", list);
String fileName = "单车派车单明细报表";
try{
response.setContentType("application/octet-stream;charset=utf-8");
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.setHeader("Content-disposition",
"attachment;filename=" + new String(fileName.getBytes(), "iso-8859-1") + ".xls");
OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
三、部分效果图
1、查询统计


2、单车查询


3、主界面

四、遇到的问题:
暂无
五、解决办法
暂无
六、燃尽图


浙公网安备 33010602011771号