feat(wms): 新增资金日记账余额计算功能
- 在 WmsJournalMapper 中添加 getLastBalance 方法,用于获取最新的余额 - 在 WmsJournalServiceImpl 中实现插入资金日记账时自动计算新余额的功能 - 新增 addJournal 方法,直接插入资金日记账记录
This commit is contained in:
@@ -4,6 +4,8 @@ import com.klp.domain.WmsJournal;
|
||||
import com.klp.domain.vo.WmsJournalVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 资金日记账Mapper接口
|
||||
*
|
||||
@@ -12,4 +14,5 @@ import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
*/
|
||||
public interface WmsJournalMapper extends BaseMapperPlus<WmsJournalMapper, WmsJournal, WmsJournalVo> {
|
||||
|
||||
BigDecimal getLastBalance();
|
||||
}
|
||||
|
||||
@@ -15,9 +15,11 @@ import com.klp.domain.WmsJournal;
|
||||
import com.klp.mapper.WmsJournalMapper;
|
||||
import com.klp.service.IWmsJournalService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 资金日记账Service业务层处理
|
||||
@@ -76,15 +78,30 @@ public class WmsJournalServiceImpl implements IWmsJournalService {
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(WmsJournalBo bo) {
|
||||
WmsJournal add = BeanUtil.toBean(bo, WmsJournal.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
WmsJournal journal = BeanUtil.toBean(bo, WmsJournal.class);
|
||||
validEntityBeforeSave(journal);
|
||||
// 计算新的余额
|
||||
BigDecimal lastBalance = baseMapper.getLastBalance();
|
||||
if (lastBalance == null) {
|
||||
lastBalance = BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal newBalance = lastBalance
|
||||
.add(Optional.ofNullable(journal.getIncomeAmount()).orElse(BigDecimal.ZERO))
|
||||
.subtract(Optional.ofNullable(journal.getExpenseAmount()).orElse(BigDecimal.ZERO));
|
||||
|
||||
journal.setBalanceAmount(newBalance);
|
||||
boolean flag = baseMapper.insert(journal) > 0;
|
||||
if (flag) {
|
||||
bo.setJournalId(add.getJournalId());
|
||||
bo.setJournalId(journal.getJournalId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
public void addJournal(WmsJournal journal) {
|
||||
|
||||
baseMapper.insert(journal);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改资金日记账
|
||||
*/
|
||||
|
||||
@@ -20,6 +20,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
</resultMap>
|
||||
<select id="getLastBalance" resultType="java.math.BigDecimal">
|
||||
SELECT balance_amount
|
||||
FROM wms_journal
|
||||
WHERE del_flag = 0
|
||||
ORDER BY create_time DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user