package com.cd.oa.service.impl;
import com.cd.oa.dao.ClaimVoucherDao;
import com.cd.oa.dao.ClaimVoucherItemDao;
import com.cd.oa.dao.DealRecordDao;
import com.cd.oa.dao.EmployeeDao;
import com.cd.oa.entity.ClaimVoucher;
import com.cd.oa.entity.ClaimVoucherItem;
import com.cd.oa.entity.DealRecord;
import com.cd.oa.entity.Employee;
import com.cd.oa.global.Contant;
import com.cd.oa.service.ClaimVoucherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service("claimVoucherService")
public class ClaimVoucherServiceImpl implements ClaimVoucherService {
@Qualifier("claimVoucherDao")
@Autowired
private ClaimVoucherDao claimVoucherDao;
@Qualifier("claimVoucherItemDao")
@Autowired
private ClaimVoucherItemDao claimVoucherItemDao;
@Qualifier("dealRecordDao")
@Autowired
private DealRecordDao dealRecordDao;
@Qualifier("employeeDao")
@Autowired
private EmployeeDao employeeDao;
public void save(ClaimVoucher claimVoucher, List<ClaimVoucherItem> items) {
//设置报销单业务
claimVoucher.setCreateTime(new Date());
claimVoucher.setNextDealId(claimVoucher.getCreateId());
claimVoucher.setStatus(Contant.CLAIMVOUCHER_CREATED);
claimVoucherDao.insert(claimVoucher);
//为保存的报销单条目都添加报销单id
for (ClaimVoucherItem item:items){
item.setClaimVoucherId(claimVoucher.getId());
claimVoucherItemDao.insert(item);
}
//保存报销单创建记录
DealRecord dealRecord = new DealRecord();
dealRecord.setClaimVoucherId(claimVoucher.getId());
dealRecord.setDealId(claimVoucher.getCreateId());
dealRecord.setDealTime(new Date());
dealRecord.setDealType(Contant.DEAL_CREATE);
dealRecord.setDealResult(Contant.CLAIMVOUCHER_CREATED);
dealRecord.setComment("无");
dealRecordDao.insert(dealRecord);
}
public ClaimVoucher get(int id) {
return claimVoucherDao.select(id);
}
public List<ClaimVoucherItem> getItems(int claimVoucherId) {
return claimVoucherItemDao.selectByClaimVoucher(claimVoucherId);
}
public List<DealRecord> getRecords(int claimVoucherId) {
return dealRecordDao.selectByClaimVoucher(claimVoucherId);
}
public List<ClaimVoucher> getForSelf(String id) {
return claimVoucherDao.selectByCreateId(id);
}
public List<ClaimVoucher> getForDeal(String id) {
return claimVoucherDao.selectByNextDealId(id);
}
public void update(ClaimVoucher claimVoucher, List<ClaimVoucherItem> items) {
claimVoucher.setNextDealId(claimVoucher.getCreateId());
claimVoucher.setStatus(Contant.CLAIMVOUCHER_CREATED);
claimVoucherDao.update(claimVoucher);
/** 下面是第一种修改方式:
* 规则:
* 1、删除数据库中报销单编号对应的所有条目
* 2、插入页面修改后提交的新条目集合
*/
List<ClaimVoucherItem> olds = claimVoucherItemDao.selectByClaimVoucher(claimVoucher.getId());
//删除数据库中原有条目
for(ClaimVoucherItem old : olds){
claimVoucherItemDao.delete(old.getId());
}
//向数据库中插入新增条目
for (ClaimVoucherItem item:items){
item.setClaimVoucherId(claimVoucher.getId());
claimVoucherItemDao.insert(item);
}
/** 下面是第二种修改方式:
* 规则:
* 1、数据库中没有的条目,而页面提交的数据中有的,则插入
* 2、数据库中有的条目,而页面提交的数据中没有的,则删除
* 3、数据库中有的,而页面提交的数据中也有的,则修改
*/
// for (ClaimVoucherItem old:olds){
// boolean isHave = false;
// for (ClaimVoucherItem item:items){
// //判断数据库中是否存在与新提交条目中id一样的条目
// if(item.getId()==old.getId()){
// isHave = true;
// break;
//
// }
// }
// //删除数据库id与新提交条目id不一样的条目
// if(!isHave){
// claimVoucherItemDao.delete(old.getId());
// }
// }
// for(ClaimVoucherItem item:items){
// item.setClaimVoucherId(claimVoucher.getId());
// if(item.getId()>0){
// claimVoucherItemDao.update(item);
// }else {
// claimVoucherItemDao.insert(item);
// }
// }
}
//这里传入的id是订单编号
public void submit(int id) {
//获取报销单创建人
ClaimVoucher claimVoucher = claimVoucherDao.select(id);
Employee employee = employeeDao.select(claimVoucher.getCreateId());
//设置报销单
claimVoucher.setStatus(Contant.CLAIMVOUCHER_SUBMIT);
claimVoucher.setNextDealId(employeeDao.selectByDepartmentAndPost(employee.getDepartmentId(),Contant.POST_FM).get(0).getId());
claimVoucherDao.update(claimVoucher);
//设置处理记录
DealRecord dealRecord = new DealRecord();
dealRecord.setClaimVoucherId(id);
dealRecord.setDealId(employee.getId());
dealRecord.setDealTime(new Date());
dealRecord.setDealType(Contant.DEAL_SUBMIT);
dealRecord.setDealResult(Contant.CLAIMVOUCHER_SUBMIT);
dealRecord.setComment("无");
dealRecordDao.insert(dealRecord);
}
//报销单审核打款
public void deal(DealRecord dealRecord) {
//获取报销单
ClaimVoucher claimVoucher = claimVoucherDao.select(dealRecord.getClaimVoucherId());
//获取当前处理人
Employee employee = employeeDao.select(dealRecord.getDealId());
//设置处理时间
dealRecord.setDealTime(new Date());
if (dealRecord.getDealType().equals(Contant.DEAL_PASS)){
//如果报销金额小于5000或者审核人
if(claimVoucher.getTotalAmount()<=Contant.LIMIT_CHECK || employee.getPost().equals(Contant.POST_GM)){
claimVoucher.setStatus(Contant.CLAIMVOUCHER_APPROVED);
claimVoucher.setNextDealId(employeeDao.selectByDepartmentAndPost(null,Contant.POST_CASHIER).get(0).getId());
dealRecord.setDealResult(Contant.CLAIMVOUCHER_APPROVED);
}else{
claimVoucher.setStatus(Contant.CLAIMVOUCHER_RECHECK);
claimVoucher.setNextDealId(employeeDao.selectByDepartmentAndPost(null,Contant.POST_GM).get(0).getId());
dealRecord.setDealResult(Contant.CLAIMVOUCHER_RECHECK);
}
}else if(dealRecord.getDealType().equals(Contant.DEAL_BACK)){
claimVoucher.setStatus(Contant.CLAIMVOUCHER_BACK);
claimVoucher.setNextDealId(claimVoucher.getCreateId());
dealRecord.setDealResult(Contant.CLAIMVOUCHER_BACK);
}else if(dealRecord.getDealType().equals(Contant.DEAL_REJECT)){
claimVoucher.setStatus(Contant.CLAIMVOUCHER_TERMINATED);
claimVoucher.setNextDealId(null);
dealRecord.setDealResult(Contant.CLAIMVOUCHER_TERMINATED);
}else if(dealRecord.getDealType().equals(Contant.DEAL_REJECT)){
claimVoucher.setStatus(Contant.CLAIMVOUCHER_TERMINATED);
claimVoucher.setNextDealId(null);
dealRecord.setDealResult(Contant.CLAIMVOUCHER_TERMINATED);
}else if(dealRecord.getDealType().equals(Contant.DEAL_PAID)){
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
系统是一个企业用来管理日常事务的系统,它一般用来管理各种流程(报销、请假. . .)审批,通讯录、日程、文件管理、通知、公告等功能。OA系统可以实现更加简单、规范、高效地管理,提高企业的整体管理水平。 系统使用idea和MySQL数据库进行开发。 运行演示功能:https://img-blog.csdnimg.cn/20190924001544353.gif,输入网址即可查看运行演示效果。 系统适用于课程设计或者毕业设计参考学习使用。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java web SSM框架的OA办公自动化系统(源码+数据库).zip (671个子文件)
442292b8a7efeabbe4cc176709b833b1792140ec 0B
8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d 0B
a720f4c5881ee1c8fda896eca90152b3c2517c2d 0B
b00785cd463a7dc56cfb555e2054c8c012fbfa89 0B
ClaimVoucherServiceImpl.class 6KB
ClaimVoucherController.class 5KB
ClaimVoucherController.class 5KB
EmployeeController.class 3KB
EmployeeController.class 3KB
DepartmentController.class 3KB
DepartmentController.class 3KB
GlobalController.class 3KB
GlobalController.class 3KB
ClaimVoucher.class 2KB
DealRecord.class 2KB
LogAdvice.class 2KB
LogAdvice.class 2KB
Contant.class 2KB
LogController.class 2KB
LogController.class 2KB
GlobalInterceptor.class 2KB
GlobalInterceptor.class 2KB
EncodingFilter.class 2KB
EncodingFilter.class 2KB
Log.class 2KB
Employee.class 2KB
EmployeeServiceImpl.class 2KB
DepartmentServiceImpl.class 1KB
ClaimVoucherItem.class 1KB
GlobalServiceImpl.class 1KB
LogServiceImpl.class 1KB
ClaimVoucherInfo.class 1KB
ClaimVoucherInfo.class 1KB
Department.class 906B
ClaimVoucherService.class 824B
EmployeeDao.class 822B
ClaimVoucherDao.class 586B
DepartmentDao.class 528B
ClaimVoucherItemDao.class 485B
LogDao.class 426B
DepartmentService.class 414B
DealRecordDao.class 414B
EmployeeService.class 404B
LogService.class 324B
GlobalService.class 267B
theme.css 549KB
theme.css 549KB
admin-forms.css 114KB
admin-forms.css 114KB
admin-forms.min.css 87KB
admin-forms.min.css 87KB
animate.min.css 52KB
animate.min.css 52KB
iconsweets.css 27KB
iconsweets.css 27KB
glyphicons-pro.css 24KB
glyphicons-pro.css 24KB
icomoon.css 23KB
icomoon.css 23KB
bootstrap-editable.css 21KB
bootstrap-editable.css 21KB
zocial.css 19KB
zocial.css 19KB
ui.fancytree.min.css 15KB
ui.fancytree.min.css 15KB
core.css 13KB
core.css 13KB
octicons.css 11KB
octicons.css 11KB
dropzone.css 11KB
dropzone.css 11KB
fullcalendar.min.css 10KB
fullcalendar.min.css 10KB
summernote.css 10KB
summernote.css 10KB
mapplic.css 10KB
mapplic.css 10KB
magnific-popup.css 8KB
magnific-popup.css 8KB
ladda.min.css 8KB
ladda.min.css 8KB
dataTables.bootstrap.css 7KB
dataTables.bootstrap.css 7KB
daterangepicker.css 6KB
daterangepicker.css 6KB
bootstrap-datetimepicker.css 6KB
bootstrap-datetimepicker.css 6KB
nestable.css 5KB
nestable.css 5KB
footable.core.min.css 5KB
footable.core.min.css 5KB
slick.css 4KB
slick.css 4KB
dataTables.plugins.css 4KB
dataTables.plugins.css 4KB
dataTables.editor.css 4KB
dataTables.editor.css 4KB
bootstrap-colorpicker.min.css 3KB
bootstrap-colorpicker.min.css 3KB
stateface.css 3KB
共 671 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
等天晴i
- 粉丝: 3481
- 资源: 10万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功