123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405 |
- package com.ruoyi.warehouseBusiness.service.impl;
- import com.ruoyi.approvalFlow.domain.AuditItems;
- import com.ruoyi.approvalFlow.domain.AuditPathsLevels;
- import com.ruoyi.approvalFlow.mapper.AuditPathsLevelsMapper;
- import com.ruoyi.approvalFlow.service.impl.AuditItemsServiceImpl;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.domain.entity.SysUser;
- import com.ruoyi.common.core.text.Convert;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.SecurityUtils;
- import com.ruoyi.system.domain.SysPost;
- import com.ruoyi.system.mapper.SysPostMapper;
- import com.ruoyi.system.mapper.SysUserMapper;
- import com.ruoyi.warehouseBusiness.domain.FInvoicePayment;
- import com.ruoyi.warehouseBusiness.domain.FInvoicePaymentDetail;
- import com.ruoyi.warehouseBusiness.mapper.FInvoicePaymentDetailMapper;
- import com.ruoyi.warehouseBusiness.mapper.FInvoicePaymentMapper;
- import com.ruoyi.warehouseBusiness.mapper.TInvoiceMapper;
- import com.ruoyi.warehouseBusiness.service.IFInvoicePaymentService;
- import com.ruoyi.warehouseBusiness.vo.BankStatementsVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.transaction.interceptor.TransactionAspectSupport;
- import java.math.BigDecimal;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * 收费管理Service业务层处理
- *
- * @author ruoyi
- * @date 2023-10-19
- */
- @Service
- public class FInvoicePaymentServiceImpl implements IFInvoicePaymentService {
- @Autowired
- private FInvoicePaymentMapper fInvoicePaymentMapper;
- @Autowired
- private FInvoicePaymentDetailMapper fInvoicePaymentDetailMapper;
- @Autowired
- private TInvoiceMapper tInvoiceMapper;
- @Autowired
- private BillnoSerialServiceImpl billnoSerialServiceImpl;
- @Autowired
- private AuditItemsServiceImpl auditItemsService;
- @Autowired
- private AuditPathsLevelsMapper auditPathsLevelsMapper;
- @Autowired
- private SysUserMapper userMapper;
- @Autowired
- private SysPostMapper postMapper;
- /**
- * 查询收费管理
- *
- * @param id 收费管理ID
- * @return 收费管理
- */
- @Override
- public FInvoicePayment selectFInvoicePaymentById(Long id) {
- FInvoicePayment fInvoicePayment = fInvoicePaymentMapper.selectFInvoicePaymentById(id);
- List<FInvoicePaymentDetail> invoicePaymentDetailList = fInvoicePaymentDetailMapper.selectByPid(id);
- fInvoicePayment.setInvoicePaymentDetailList(invoicePaymentDetailList);
- fInvoicePayment.setSumMoneyZh(Convert.digitUppercase(fInvoicePayment.getSumMoney().doubleValue()));
- getUserName(fInvoicePayment);
- return fInvoicePayment;
- }
- /**
- * 获取打印数据中的人员信息
- * @param fInvoicePayment
- * @return
- */
- public void getUserName(FInvoicePayment fInvoicePayment) {
- // 提交人
- // dataMap.put("presenterName", SecurityUtils.getLoginUser().getUser().getNickName());
- AuditPathsLevels auditPathsLevels = new AuditPathsLevels();
- auditPathsLevels.setPathId(1141L);
- List<AuditPathsLevels> pathsLevelsList = auditPathsLevelsMapper.selectAuditPathsLevelsList(auditPathsLevels);
- boolean isTreasurer = true;
- for (AuditPathsLevels pathsLevels : pathsLevelsList) {
- String auditUserId = pathsLevels.getAuditUserId();
- if (auditUserId.contains("[")) {
- auditUserId = auditUserId.substring(1);
- }
- if (auditUserId.contains("]")) {
- auditUserId = auditUserId.substring(0, auditUserId.length() - 1);
- }
- List<String> idList = new ArrayList<>();
- if (auditUserId.contains(",")) {
- idList = Arrays.asList(auditUserId.split(","));
- } else {
- idList.add(auditUserId);
- }
- SysUser sysUser = userMapper.selectUserById(Long.valueOf(idList.get(0)));
- List<SysPost> sysPosts = postMapper.selectPostsByUserName(sysUser.getUserName());
- for (SysPost sysPost : sysPosts) {
- if ("fs".equals(sysPost.getPostCode())) {
- // 财务主管
- fInvoicePayment.setFirstLevelReviewerName(sysUser.getNickName());
- // dataMap.put("firstLevelReviewerName", sysUser.getNickName());
- } else if ("fm".equals(sysPost.getPostCode())) {
- // 财务经理
- // dataMap.put("secondaryReviewerName", sysUser.getNickName());
- fInvoicePayment.setSecondaryReviewerName(sysUser.getNickName());
- }
- }
- // if (isTreasurer) {
- // // 财务主管
- // dataMap.put("firstLevelReviewerName", sysUser.getNickName());
- // isTreasurer = false;
- // } else {
- // // 财务经理
- // dataMap.put("secondaryReviewerName", sysUser.getNickName());
- // }
- }
- }
- /**
- * 查询收费管理列表
- *
- * @param fInvoicePayment 收费管理
- * @return 收费管理
- */
- @Override
- public List<FInvoicePayment> selectFInvoicePaymentList(FInvoicePayment fInvoicePayment) {
- return fInvoicePaymentMapper.selectFInvoicePaymentList(fInvoicePayment);
- }
- /**
- * 新增收费管理
- *
- * @param fInvoicePayment 收费管理
- * @return 结果
- */
- @Override
- @Transactional
- public FInvoicePayment insertFInvoicePayment(FInvoicePayment fInvoicePayment) {
- Date nowDate = DateUtils.getNowDate();
- String billNo = null;
- if (fInvoicePayment.getType() == 1) {
- billNo = billnoSerialServiceImpl.getBillNo("SFGL", nowDate);
- } else {
- billNo = billnoSerialServiceImpl.getBillNo("FFGL", nowDate);
- }
- fInvoicePayment.setSysNo(billNo);
- fInvoicePayment.setCreateBy(SecurityUtils.getUsername());
- fInvoicePayment.setCreateTime(nowDate);
- BigDecimal sumProceeds = new BigDecimal("0");
- List<FInvoicePaymentDetail> invoicePaymentDetailList = fInvoicePayment.getInvoicePaymentDetailList();
- for (FInvoicePaymentDetail fInvoicePaymentDetail : invoicePaymentDetailList) {
- BigDecimal proceeds = fInvoicePaymentDetail.getProceeds();
- sumProceeds = sumProceeds.add(proceeds);
- }
- fInvoicePayment.setSumMoney(sumProceeds);
- int i = fInvoicePaymentMapper.insertFInvoicePayment(fInvoicePayment);
- for (FInvoicePaymentDetail fInvoicePaymentDetail : invoicePaymentDetailList) {
- fInvoicePaymentDetail.setPid(fInvoicePayment.getId());
- fInvoicePaymentDetail.setCreateBy(SecurityUtils.getUsername());
- fInvoicePaymentDetail.setCreateTime(nowDate);
- fInvoicePaymentDetail.setId(null);
- fInvoicePaymentDetailMapper.insertFInvoicePaymentDetail(fInvoicePaymentDetail);
- // tInvoiceMapper.updateProceedsById(
- // fInvoicePaymentDetail.getInvoiceId(),
- // fInvoicePaymentDetail.getProceeds(),
- // SecurityUtils.getUsername(),
- // nowDate);
- }
- return fInvoicePayment;
- }
- /**
- * 修改收费管理
- *
- * @param fInvoicePayment 收费管理
- * @return 结果
- */
- @Override
- @Transactional
- public FInvoicePayment updateFInvoicePayment(FInvoicePayment fInvoicePayment) {
- Date nowDate = DateUtils.getNowDate();
- fInvoicePayment.setUpdateBy(SecurityUtils.getUsername());
- fInvoicePayment.setUpdateTime(nowDate);
- BigDecimal sumProceeds = new BigDecimal("0");
- List<FInvoicePaymentDetail> invoicePaymentDetailList = fInvoicePayment.getInvoicePaymentDetailList();
- for (FInvoicePaymentDetail fInvoicePaymentDetail : invoicePaymentDetailList) {
- BigDecimal proceeds = fInvoicePaymentDetail.getProceeds();
- sumProceeds = sumProceeds.add(proceeds);
- }
- fInvoicePayment.setSumMoney(sumProceeds);
- int i = fInvoicePaymentMapper.updateFInvoicePayment(fInvoicePayment);
- fInvoicePaymentDetailMapper.DeleteByPid(fInvoicePayment.getId(), nowDate, SecurityUtils.getUsername());
- // List<FInvoicePaymentDetail> invoicePaymentDetailList = fInvoicePayment.getInvoicePaymentDetailList();
- for (FInvoicePaymentDetail fInvoicePaymentDetail : invoicePaymentDetailList) {
- fInvoicePaymentDetail.setPid(fInvoicePayment.getId());
- fInvoicePaymentDetail.setCreateBy(SecurityUtils.getUsername());
- fInvoicePaymentDetail.setCreateTime(nowDate);
- fInvoicePaymentDetail.setId(null);
- fInvoicePaymentDetailMapper.insertFInvoicePaymentDetail(fInvoicePaymentDetail);
- tInvoiceMapper.updateProceedsById(
- fInvoicePaymentDetail.getInvoiceId(),
- fInvoicePaymentDetail.getProceeds(),
- SecurityUtils.getUsername(),
- nowDate);
- }
- return fInvoicePayment;
- }
- /**
- * 批量删除收费管理
- *
- * @param ids 需要删除的收费管理ID
- * @return 结果
- */
- @Override
- @Transactional
- public int deleteFInvoicePaymentByIds(Long[] ids) {
- Date nowDate = DateUtils.getNowDate();
- int i = 0;
- for (Long id : ids) {
- i = fInvoicePaymentMapper.deleteByid(id, nowDate, SecurityUtils.getUsername());
- List<FInvoicePaymentDetail> invoicePaymentDetailList = fInvoicePaymentDetailMapper.selectByPid(id);
- fInvoicePaymentDetailMapper.DeleteByPid(id, nowDate, SecurityUtils.getUsername());
- // for (FInvoicePaymentDetail fInvoicePaymentDetail : invoicePaymentDetailList) {
- // tInvoiceMapper.quashProceedsById(fInvoicePaymentDetail, SecurityUtils.getUsername(), nowDate);
- // }
- }
- return i;
- }
- /**
- * 删除收费管理信息
- *
- * @param id 收费管理ID
- * @return 结果
- */
- @Override
- public int deleteFInvoicePaymentById(Long id) {
- return fInvoicePaymentMapper.deleteFInvoicePaymentById(id);
- }
- @Override
- @Transactional
- public AjaxResult payForIt(FInvoicePayment fInvoicePayment) {
- if (fInvoicePayment.getType() == 1) {
- Date nowDate = DateUtils.getNowDate();
- fInvoicePaymentMapper.payForIt(fInvoicePayment.getId(), SecurityUtils.getUsername(), nowDate, 2);
- List<FInvoicePaymentDetail> invoicePaymentDetailList = fInvoicePayment.getInvoicePaymentDetailList();
- for (FInvoicePaymentDetail fInvoicePaymentDetail : invoicePaymentDetailList) {
- tInvoiceMapper.updateProceedsById(
- fInvoicePaymentDetail.getInvoiceId(),
- fInvoicePaymentDetail.getProceeds(),
- SecurityUtils.getUsername(),
- nowDate);
- }
- return new AjaxResult(200, "收付费成功");
- }
- Date nowDate = DateUtils.getNowDate();
- fInvoicePaymentMapper.updateAuditTypeById(fInvoicePayment.getId(), 2, SecurityUtils.getUsername(), nowDate);
- if (fInvoicePayment.getType() == 2) {
- // 提交审批流
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- // 业务id
- auditItems.setBillId(fInvoicePayment.getId());
- // 活动号
- auditItems.setActId(580L);
- auditItems.setIffinalItem("F");
- // 业务编号
- auditItems.setBillNo(fInvoicePayment.getSysNo());
- // 存储委托方(货权方)
- // auditItems.setRefno1(tFee.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2("FFGL");
- // 存储提单号(提单号)
- // auditItems.setRefno3(tFee.getfBillno());
- auditItems.setSendUserId(SecurityUtils.getLoginUser().getUser().getUserId());
- auditItems.setSendName(SecurityUtils.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(SecurityUtils.getLoginUser().getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- String code = approvalFlow.get("code").toString();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
- return new AjaxResult(200, "收付费成功");
- }
- @Override
- @Transactional
- public AjaxResult quashPayForIt(FInvoicePayment fInvoicePayment) {
- Date nowDate = DateUtils.getNowDate();
- fInvoicePaymentMapper.quashPayForIt(fInvoicePayment.getId(), SecurityUtils.getUsername(), nowDate);
- List<FInvoicePaymentDetail> invoicePaymentDetailList = fInvoicePayment.getInvoicePaymentDetailList();
- for (FInvoicePaymentDetail fInvoicePaymentDetail : invoicePaymentDetailList) {
- tInvoiceMapper.quashProceedsById(fInvoicePaymentDetail, SecurityUtils.getUsername(), nowDate);
- }
- return new AjaxResult(200, "撤销收付费成功");
- }
- @Override
- public List<BankStatementsVO> bankStatements(BankStatementsVO bankStatementsVO) {
- BigDecimal initialAmount = new BigDecimal("0");
- BigDecimal balance = initialAmount;
- List<BankStatementsVO> bankStatementsVOList = fInvoicePaymentMapper.bankStatements(bankStatementsVO);
- String no = "";
- for (BankStatementsVO statementsVO : bankStatementsVOList) {
- // 如果传入日期查询初期金额
- SimpleDateFormat customFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- statementsVO.setDateString(customFormat.format(statementsVO.getDate()));
- BigDecimal amountCharged = fInvoicePaymentMapper.getInitialAmountByType(statementsVO.getDateString(), 1, statementsVO.getCdbNo());
- BigDecimal amountPaid = fInvoicePaymentMapper.getInitialAmountByType(statementsVO.getDateString(), 2, statementsVO.getCdbNo());
- BigDecimal amountPaids = fInvoicePaymentMapper.getInitialAmountPay(statementsVO.getDateString(), statementsVO.getCdbNo());
- if (amountCharged == null) {
- amountCharged = new BigDecimal("0");
- }
- if (amountPaid == null) {
- amountPaid = new BigDecimal("0");
- }
- if (amountPaids == null) {
- amountPaids = new BigDecimal("0");
- }
- amountPaid = amountPaid.add(amountPaids);
- initialAmount = amountCharged.subtract(amountPaid);
- // 计算当前余额
- if (statementsVO.getRevenue() != null) {
- statementsVO.setBalance(initialAmount.add(statementsVO.getRevenue()));
- } else if (statementsVO.getExpenditures() != null) {
- statementsVO.setBalance(initialAmount.subtract(statementsVO.getExpenditures()));
- }
- // 初期
- String forNo = statementsVO.getCdbNo();
- String cdbNo = statementsVO.getCdbNo();
- if (forNo == null) {
- forNo = "";
- }
- if (cdbNo == null) {
- cdbNo = "";
- }
- if(!forNo.equals(cdbNo)) {
- balance = initialAmount;
- }
- statementsVO.setTheStartingAmount(balance);
- }
- return bankStatementsVOList;
- }
- @Override
- public int confirmPrinting(Map<String, String> fInvoicePayment) {
- String id = fInvoicePayment.get("id");
- Long ids = Long.valueOf(id);
- String printDate = fInvoicePayment.get("printTime");
- return fInvoicePaymentMapper.confirmPrinting(ids, printDate);
- }
- }
|