ExamManualLedgerServiceImpl.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.keao.edu.user.service.impl;
  2. import com.keao.edu.common.dal.BaseDAO;
  3. import com.keao.edu.common.exception.BizException;
  4. import com.keao.edu.common.page.PageInfo;
  5. import com.keao.edu.common.service.impl.BaseServiceImpl;
  6. import com.keao.edu.user.dao.ExamManualLedgerDao;
  7. import com.keao.edu.user.dao.ExamOrganizationRelationDao;
  8. import com.keao.edu.user.dto.ExamManualLedgerStatisticsDto;
  9. import com.keao.edu.user.entity.ExamManualLedger;
  10. import com.keao.edu.user.entity.ExamOrganizationRelation;
  11. import com.keao.edu.user.page.ExamManualLedgerQueryInfo;
  12. import com.keao.edu.user.service.ExamManualLedgerService;
  13. import com.keao.edu.util.collection.MapUtil;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Isolation;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import java.math.BigDecimal;
  19. import java.util.*;
  20. @Service
  21. public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManualLedger> implements ExamManualLedgerService {
  22. @Autowired
  23. private ExamManualLedgerDao examManualLedgerDao;
  24. @Autowired
  25. private ExamOrganizationRelationDao examOrganizationRelationDao;
  26. @Override
  27. public BaseDAO<Long, ExamManualLedger> getDAO() {
  28. return examManualLedgerDao;
  29. }
  30. @Override
  31. @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
  32. public void addExamManualLedger(ExamManualLedger examManualLedger) {
  33. if(Objects.isNull(examManualLedger.getExaminationBasicId())){
  34. throw new BizException("请指定考级项目");
  35. }
  36. if(Objects.isNull(examManualLedger.getOrganId())){
  37. throw new BizException("暂无权限");
  38. }
  39. if(Objects.isNull(examManualLedger.getAmount())){
  40. throw new BizException("请指定交易金额");
  41. }
  42. if(Objects.nonNull(examManualLedger.getTargetOrganId())&&examManualLedger.getTargetOrganId()<=0){
  43. examManualLedger.setTargetOrganId(null);
  44. }
  45. examManualLedgerDao.insert(examManualLedger);
  46. ExamOrganizationRelation examOrganizationRelation = examOrganizationRelationDao.getExamOrganizationRelation(examManualLedger.getExaminationBasicId(), examManualLedger.getOrganId());
  47. if(Objects.isNull(examOrganizationRelation)){
  48. throw new BizException("合作单位信息异常");
  49. }
  50. examOrganizationRelation.setTotalTransAmount(examManualLedgerDao.countOrganLedgerWithExam(examManualLedger.getExaminationBasicId(), examManualLedger.getOrganId()));
  51. examOrganizationRelationDao.update(examOrganizationRelation);
  52. }
  53. @Override
  54. public PageInfo<ExamManualLedger> queryExamManualLedgers(ExamManualLedgerQueryInfo queryInfo) {
  55. PageInfo<ExamManualLedger> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
  56. Map<String, Object> params = new HashMap<String, Object>();
  57. MapUtil.populateMap(params, queryInfo);
  58. List<ExamManualLedger> dataList = new ArrayList<>();
  59. int count = examManualLedgerDao.countExamManualLedgers(params);
  60. if (count > 0) {
  61. pageInfo.setTotal(count);
  62. params.put("offset", pageInfo.getOffset());
  63. dataList = examManualLedgerDao.queryExamManualLedgers(params);
  64. }
  65. pageInfo.setRows(dataList);
  66. return pageInfo;
  67. }
  68. @Override
  69. @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
  70. public void deleteExamManualLedger(Integer operatorId,Long id) {
  71. if(Objects.isNull(id)){
  72. throw new BizException("请指定需要删除的支出记录");
  73. }
  74. ExamManualLedger examManualLedger = examManualLedgerDao.get(id);
  75. examManualLedgerDao.delete(id);
  76. ExamOrganizationRelation examOrganizationRelation = examOrganizationRelationDao.getExamOrganizationRelation(examManualLedger.getExaminationBasicId(), examManualLedger.getOrganId());
  77. if(Objects.isNull(examOrganizationRelation)){
  78. throw new BizException("合作单位信息异常");
  79. }
  80. BigDecimal amount = examManualLedgerDao.countOrganLedgerWithExam(examManualLedger.getExaminationBasicId(), examManualLedger.getOrganId());
  81. if(Objects.isNull(amount)){
  82. amount=BigDecimal.ZERO;
  83. }
  84. examOrganizationRelation.setTotalTransAmount(amount);
  85. examOrganizationRelationDao.update(examOrganizationRelation);
  86. }
  87. @Override
  88. public ExamManualLedgerStatisticsDto getExamManualLedgerStatistics(Integer organId, Long examId, Integer targetOrganId) {
  89. if(Objects.isNull(examId)){
  90. throw new BizException("请指定考级项目");
  91. }
  92. return examManualLedgerDao.getExamManualLedgerStatistics(organId, examId, targetOrganId);
  93. }
  94. }