SettlementDocumentaryFeesServiceImpl.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.ydtech.modules.fnc.service.impl;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.github.pagehelper.PageHelper;
  5. import com.github.pagehelper.PageInfo;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.modules.base.controller.BaseController;
  8. import com.ydtech.modules.fnc.dao.SettlementDocumentaryFeesMapper;
  9. import com.ydtech.modules.fnc.entity.InsPlyIncome;
  10. import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
  11. import com.ydtech.modules.fnc.entity.SettlementDocumentaryLogEntity;
  12. import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
  13. import com.ydtech.modules.fnc.service.SettlementDocumentaryLogService;
  14. import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
  15. import com.ydtech.modules.order.entity.BasePageResult;
  16. import com.ydtech.modules.order.entity.InsOrders;
  17. import org.apache.commons.lang3.ObjectUtils;
  18. import org.apache.commons.lang3.StringUtils;
  19. import org.springframework.beans.BeanUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import java.math.BigDecimal;
  24. import java.util.Date;
  25. import java.util.HashMap;
  26. import java.util.List;
  27. @Service
  28. public class SettlementDocumentaryFeesServiceImpl extends ServiceImpl<SettlementDocumentaryFeesMapper, SettlementDocumentaryFeesEntity> implements SettlementDocumentaryFeesService {
  29. @Autowired
  30. private SettlementDocumentaryLogService settlementDocumentaryLogService;
  31. @Override
  32. public HttpResult<BasePageResult<SettlementDocumentaryFeesEntity>> querySettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
  33. try {
  34. HashMap<String, Object> params = new HashMap<>();
  35. params.put("pageNum", settlementDocumentaryFeesVo.getPageNum());
  36. params.put("pageSize", settlementDocumentaryFeesVo.getPageSize());
  37. PageInfo<List<SettlementDocumentaryFeesEntity>> pageHelper = null;
  38. List<SettlementDocumentaryFeesEntity> list = this.baseMapper.querySettle(params);
  39. pageHelper = new PageInfo(list);
  40. BasePageResult<SettlementDocumentaryFeesEntity> pageResult = new BasePageResult<SettlementDocumentaryFeesEntity>(settlementDocumentaryFeesVo.getPageNum(), settlementDocumentaryFeesVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
  41. return HttpResult.ok(pageResult);
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. return HttpResult.error("查询异常");
  45. }
  46. }
  47. @Override
  48. @Transactional
  49. public HttpResult inertSettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
  50. int i = this.compareAmount(settlementDocumentaryFeesVo.getTotalAmount(), settlementDocumentaryFeesVo.getSettlementAmount());
  51. if (i < 0) {
  52. return HttpResult.error("结算金额大于总金额,请重新结算");
  53. }
  54. SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = new SettlementDocumentaryFeesEntity();
  55. BeanUtils.copyProperties(settlementDocumentaryFeesVo, settlementDocumentaryFeesEntity);
  56. baseMapper.insert(settlementDocumentaryFeesEntity);
  57. // 生成跟单费结算记录
  58. SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
  59. settlementDocumentaryLogEntity.setAmount(settlementDocumentaryFeesVo.getSettlementAmount()); // 结算金额
  60. settlementDocumentaryLogEntity.setSettlementDocumentaryId(settlementDocumentaryFeesEntity.getId()); // 关联id
  61. settlementDocumentaryLogEntity.setAmountType("2"); //跟单费结算
  62. settlementDocumentaryLogEntity.setCreateTime(new Date());
  63. settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
  64. return HttpResult.ok("结算成功");
  65. }
  66. @Override
  67. public String checkDate(HashMap<String, Object> params) {
  68. List<SettlementDocumentaryFeesEntity> startList = baseMapper.checkDate(params);
  69. if (startList.size() > 0) {
  70. return "有重复";
  71. }
  72. return null;
  73. }
  74. @Override
  75. @Transactional
  76. public HttpResult documentarySettle(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
  77. SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = baseMapper.selectById(settlementDocumentaryFeesVo.getId());
  78. if (settlementDocumentaryFeesVo.getSettlementAmount() != null && ObjectUtils.isNotEmpty(settlementDocumentaryFeesEntity)) {
  79. int i = this.compareAmount(settlementDocumentaryFeesEntity.getUnsettledAmount(), settlementDocumentaryFeesVo.getSettlementAmount());
  80. if (i < 0) {
  81. return HttpResult.error("结算金额大于未结算金额,请重新结算");
  82. }
  83. settlementDocumentaryFeesEntity.setSettlementAmount(settlementDocumentaryFeesEntity.getSettlementAmount().add(settlementDocumentaryFeesVo.getSettlementAmount()));
  84. settlementDocumentaryFeesEntity.setUnsettledAmount(settlementDocumentaryFeesEntity.getTotalAmount().subtract(settlementDocumentaryFeesEntity.getSettlementAmount())); //未结算金额
  85. baseMapper.updateById(settlementDocumentaryFeesEntity);
  86. // 记录
  87. // 生成跟单费结算记录
  88. SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
  89. settlementDocumentaryLogEntity.setAmount(settlementDocumentaryFeesVo.getSettlementAmount()); // 结算金额
  90. settlementDocumentaryLogEntity.setSettlementDocumentaryId(settlementDocumentaryFeesEntity.getId()); // 关联id
  91. settlementDocumentaryLogEntity.setAmountType("2"); //跟单费结算
  92. settlementDocumentaryLogEntity.setCreateTime(new Date());
  93. settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
  94. return HttpResult.ok("修改成功");
  95. }
  96. return null;
  97. }
  98. private int compareAmount(BigDecimal settlementAmount, BigDecimal settlementAmount1) {
  99. return settlementAmount.compareTo(settlementAmount1);
  100. }
  101. }