|
@@ -0,0 +1,216 @@
|
|
|
+package com.jeeplus.business.borrow.service;
|
|
|
+
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.jeeplus.business.borrow.domain.BorrowMoney;
|
|
|
+import com.jeeplus.business.borrow.domain.Refund;
|
|
|
+import com.jeeplus.business.borrow.mapper.BorrowMapper;
|
|
|
+import com.jeeplus.business.borrow.mapper.RefundMapper;
|
|
|
+import com.jeeplus.business.borrow.service.dto.BorrowDTO;
|
|
|
+import com.jeeplus.business.borrow.service.dto.RefundDTO;
|
|
|
+import com.jeeplus.business.project.service.dto.JyProjectDTO;
|
|
|
+import com.jeeplus.common.TokenProvider;
|
|
|
+import com.jeeplus.core.query.QueryWrapperGenerator;
|
|
|
+import com.jeeplus.sys.feign.IUserApi;
|
|
|
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
|
|
|
+import com.jeeplus.sys.service.dto.UserDTO;
|
|
|
+import com.jeeplus.utils.StringUtils;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.UUID;
|
|
|
+@Service
|
|
|
+public class BorrowService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BorrowMapper borrowMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private RefundMapper refundMapper;
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 列表管理
|
|
|
+ * @param borrowDTO
|
|
|
+ * @param page
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public IPage<BorrowDTO> findPageList(BorrowDTO borrowDTO, Page<BorrowDTO> page) throws Exception {
|
|
|
+ QueryWrapper<BorrowDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition(borrowDTO, BorrowDTO.class);
|
|
|
+ queryWrapper.eq("a.del_flag",0);
|
|
|
+ //编号
|
|
|
+ if (StringUtils.isNotBlank(borrowDTO.getNo())){
|
|
|
+ queryWrapper.like("a.no",borrowDTO.getNo());
|
|
|
+ }
|
|
|
+ //原因
|
|
|
+ if (StringUtils.isNotBlank(borrowDTO.getReason())){
|
|
|
+ queryWrapper.like("a.reason",borrowDTO.getReason());
|
|
|
+ }
|
|
|
+ //借款人
|
|
|
+ if (StringUtils.isNotBlank(borrowDTO.getCreateById())){
|
|
|
+ queryWrapper.eq("a.create_by_id",borrowDTO.getCreateById());
|
|
|
+ }
|
|
|
+ //借款人部门
|
|
|
+ if (StringUtils.isNotBlank(borrowDTO.getOfficeId())){
|
|
|
+ queryWrapper.eq("so.id",borrowDTO.getOfficeId());
|
|
|
+ }
|
|
|
+ //借款时间
|
|
|
+ if (borrowDTO.getCreateDates() != null && borrowDTO.getCreateDates().length > 0) {
|
|
|
+ queryWrapper.between("a.create_time", borrowDTO.getCreateDates()[0], borrowDTO.getCreateDates()[1]);
|
|
|
+ }
|
|
|
+ //借款金额
|
|
|
+ if (borrowDTO.getBorrowAmounts() != null) {
|
|
|
+ if (StringUtils.isNotEmpty(borrowDTO.getBorrowAmounts()[0])) {
|
|
|
+ queryWrapper.ge("a.money_lower", Double.parseDouble(borrowDTO.getBorrowAmounts()[0]));
|
|
|
+ }
|
|
|
+ if (borrowDTO.getBorrowAmounts().length>1 && StringUtils.isNotEmpty(borrowDTO.getBorrowAmounts()[1])) {
|
|
|
+ queryWrapper.le("a.money_lower", Double.parseDouble(borrowDTO.getBorrowAmounts()[1]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ IPage<BorrowDTO> pageList=borrowMapper.findPageList(queryWrapper,page);
|
|
|
+ return pageList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id查询数据
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public BorrowDTO findById(String id) {
|
|
|
+ BorrowDTO borrowDTO=borrowMapper.findById(id);
|
|
|
+ return borrowDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增/修改
|
|
|
+ * @param borrowDTO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String save(BorrowDTO borrowDTO) throws Exception {
|
|
|
+ if (StringUtils.isNotBlank(borrowDTO.getId())){
|
|
|
+ return update(borrowDTO);
|
|
|
+ }
|
|
|
+ return add(borrowDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ private String add(BorrowDTO borrowDTO) throws Exception {
|
|
|
+ BorrowMoney borrowMoney = new BorrowMoney();
|
|
|
+ //获取当前登录人信息
|
|
|
+ UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
|
|
|
+ //生成借款编号
|
|
|
+ String borrowNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), BorrowDTO.BIZ_CODE,TokenProvider.getCurrentToken());
|
|
|
+ //生成id
|
|
|
+ String id = UUID.randomUUID().toString().replace("-", "");
|
|
|
+
|
|
|
+ borrowMoney.setId(id);
|
|
|
+ borrowMoney.setNo(borrowNo);
|
|
|
+ borrowMoney.setCreateById(userDTO.getId());
|
|
|
+ borrowMoney.setCreateTime(new Date());
|
|
|
+ borrowMoney.setUpdateById(userDTO.getId());
|
|
|
+ borrowMoney.setUpdateTime(new Date());
|
|
|
+ borrowMoney.setMoneyLower(borrowDTO.getMoneyLower());//借款金额小写
|
|
|
+ borrowMoney.setMoney(borrowDTO.getMoney());//借款金额大写
|
|
|
+ borrowMoney.setFinalMoney(borrowDTO.getMoneyLower());//剩余借款金额
|
|
|
+ borrowMoney.setStatus(borrowDTO.getStatus());
|
|
|
+ borrowMoney.setReason(borrowDTO.getReason()); //借款用途
|
|
|
+ borrowMapper.insert(borrowMoney);
|
|
|
+
|
|
|
+ //在还款表中生成一条数据
|
|
|
+ Refund refund = new Refund();
|
|
|
+ refund.setBorrowId(id);
|
|
|
+ refund.setStatus("0");
|
|
|
+ refundMapper.insert(refund);
|
|
|
+
|
|
|
+ return id;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String update(BorrowDTO borrowDTO){
|
|
|
+ //获取当前登录人信息
|
|
|
+ UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
|
|
|
+ BorrowMoney borrowMoney = new BorrowMoney();
|
|
|
+ BeanUtils.copyProperties(borrowDTO,borrowMoney);
|
|
|
+
|
|
|
+ borrowMoney.setUpdateById(userDTO.getId());
|
|
|
+ borrowMoney.setUpdateTime(new Date());
|
|
|
+ borrowMoney.setFinalMoney(borrowDTO.getMoneyLower());
|
|
|
+ borrowMapper.updateById(borrowMoney);
|
|
|
+
|
|
|
+ return borrowDTO.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id修改状态
|
|
|
+ * @param borrowDTO
|
|
|
+ */
|
|
|
+ public void updateStatusById(BorrowDTO borrowDTO) {
|
|
|
+ borrowMapper.updateStatusById(borrowDTO.getId(),borrowDTO.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id进行删除
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String deleteById(String id) {
|
|
|
+ borrowMapper.deleteById(id);
|
|
|
+ return "删除成功";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加或修改借款归还
|
|
|
+ * @param refundDTO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String saveRefund(RefundDTO refundDTO) {
|
|
|
+ //获取当前登录人信息
|
|
|
+ UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
|
|
|
+ //修改借款归还中的数据
|
|
|
+ Refund refund = new Refund();
|
|
|
+ BeanUtils.copyProperties(refundDTO,refund);
|
|
|
+ refund.setUpdateById(userDTO.getId());
|
|
|
+ refund.setUpdateTime(new Date());
|
|
|
+ refundMapper.updateById(refund);
|
|
|
+ //查找出借款中的借款金额
|
|
|
+ Refund id = refundMapper.selectById(refundDTO.getId());
|
|
|
+ BorrowMoney borrowMoney = borrowMapper.selectById(id.getBorrowId());
|
|
|
+ //同时修改借款中的剩余借款金额
|
|
|
+ BorrowMoney borrow = new BorrowMoney();
|
|
|
+ borrow.setFinalMoney(refundDTO.getFinalMoney());
|
|
|
+ borrow.setId(borrowMoney.getId());
|
|
|
+ borrowMapper.updateById(borrow);
|
|
|
+ return refundDTO.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id修改借款归还状态
|
|
|
+ * @param refundDTO
|
|
|
+ */
|
|
|
+ public void updateRefundById(RefundDTO refundDTO) {
|
|
|
+ borrowMapper.updateRefundById(refundDTO.getId(),refundDTO.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 管理员修改
|
|
|
+ * @param borrowDTO
|
|
|
+ */
|
|
|
+ public void adminEditForm(BorrowDTO borrowDTO) {
|
|
|
+ //修改借款数据
|
|
|
+ BorrowMoney borrowMoney = new BorrowMoney();
|
|
|
+ borrowMoney.setFinalMoney(borrowDTO.getFinalMoney());
|
|
|
+ borrowMoney.setMoneyLower(borrowDTO.getMoneyLower());
|
|
|
+ borrowMoney.setMoney(borrowDTO.getMoney());
|
|
|
+ borrowMoney.setId(borrowDTO.getId());
|
|
|
+ borrowMapper.updateInfoById(borrowMoney);
|
|
|
+ //修改还款数据
|
|
|
+ Refund refundInfo = new Refund();
|
|
|
+ refundInfo.setRefund(borrowDTO.getRefund());
|
|
|
+ refundInfo.setRefundLower(borrowDTO.getRefundLower());
|
|
|
+ refundInfo.setId(borrowDTO.getRefundId());
|
|
|
+ borrowMapper.updateRefundInfoById(refundInfo);
|
|
|
+ }
|
|
|
+}
|