diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsJournalMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsJournalMapper.java index 49188686..87e9709d 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsJournalMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsJournalMapper.java @@ -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 { + BigDecimal getLastBalance(); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsJournalServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsJournalServiceImpl.java index 96d28cb3..0b5b2431 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsJournalServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsJournalServiceImpl.java @@ -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); + } + /** * 修改资金日记账 */ diff --git a/klp-wms/src/main/resources/mapper/klp/WmsJournalMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsJournalMapper.xml index 49bef9dc..d8477e5b 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsJournalMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsJournalMapper.xml @@ -20,6 +20,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +