From 8e3497b971c028f596db108ecb92c147b64ae120 Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Wed, 13 Aug 2025 11:48:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E8=B5=84?= =?UTF-8?q?=E9=87=91=E6=97=A5=E8=AE=B0=E8=B4=A6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加资金日记账相关实体类、Mapper、Service、Controller - 实现资金日记账的增删改查功能 - 添加资金日记账的导出功能 --- .../klp/controller/WmsJournalController.java | 99 +++++++++++++++ .../main/java/com/klp/domain/WmsJournal.java | 67 ++++++++++ .../java/com/klp/domain/WmsJournalEntry.java | 1 - .../java/com/klp/domain/bo/WmsJournalBo.java | 71 +++++++++++ .../java/com/klp/domain/vo/WmsJournalVo.java | 81 ++++++++++++ .../java/com/klp/mapper/WmsJournalMapper.java | 15 +++ .../com/klp/service/IWmsJournalService.java | 48 ++++++++ .../service/impl/WmsJournalServiceImpl.java | 115 ++++++++++++++++++ .../resources/mapper/klp/WmsJournalMapper.xml | 25 ++++ 9 files changed, 521 insertions(+), 1 deletion(-) create mode 100644 klp-wms/src/main/java/com/klp/controller/WmsJournalController.java create mode 100644 klp-wms/src/main/java/com/klp/domain/WmsJournal.java create mode 100644 klp-wms/src/main/java/com/klp/domain/bo/WmsJournalBo.java create mode 100644 klp-wms/src/main/java/com/klp/domain/vo/WmsJournalVo.java create mode 100644 klp-wms/src/main/java/com/klp/mapper/WmsJournalMapper.java create mode 100644 klp-wms/src/main/java/com/klp/service/IWmsJournalService.java create mode 100644 klp-wms/src/main/java/com/klp/service/impl/WmsJournalServiceImpl.java create mode 100644 klp-wms/src/main/resources/mapper/klp/WmsJournalMapper.xml diff --git a/klp-wms/src/main/java/com/klp/controller/WmsJournalController.java b/klp-wms/src/main/java/com/klp/controller/WmsJournalController.java new file mode 100644 index 00000000..86bf9eed --- /dev/null +++ b/klp-wms/src/main/java/com/klp/controller/WmsJournalController.java @@ -0,0 +1,99 @@ +package com.klp.controller; + +import java.util.List; +import java.util.Arrays; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.klp.common.annotation.RepeatSubmit; +import com.klp.common.annotation.Log; +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.domain.R; +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import com.klp.common.enums.BusinessType; +import com.klp.common.utils.poi.ExcelUtil; +import com.klp.domain.vo.WmsJournalVo; +import com.klp.domain.bo.WmsJournalBo; +import com.klp.service.IWmsJournalService; +import com.klp.common.core.page.TableDataInfo; + +/** + * 资金日记账 + * + * @author klp + * @date 2025-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/klp/journal") +public class WmsJournalController extends BaseController { + + private final IWmsJournalService iWmsJournalService; + + /** + * 查询资金日记账列表 + */ + @GetMapping("/list") + public TableDataInfo list(WmsJournalBo bo, PageQuery pageQuery) { + return iWmsJournalService.queryPageList(bo, pageQuery); + } + + /** + * 导出资金日记账列表 + */ + @Log(title = "资金日记账", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsJournalBo bo, HttpServletResponse response) { + List list = iWmsJournalService.queryList(bo); + ExcelUtil.exportExcel(list, "资金日记账", WmsJournalVo.class, response); + } + + /** + * 获取资金日记账详细信息 + * + * @param journalId 主键 + */ + @GetMapping("/{journalId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long journalId) { + return R.ok(iWmsJournalService.queryById(journalId)); + } + + /** + * 新增资金日记账 + */ + @Log(title = "资金日记账", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsJournalBo bo) { + return toAjax(iWmsJournalService.insertByBo(bo)); + } + + /** + * 修改资金日记账 + */ + @Log(title = "资金日记账", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsJournalBo bo) { + return toAjax(iWmsJournalService.updateByBo(bo)); + } + + /** + * 删除资金日记账 + * + * @param journalIds 主键串 + */ + @Log(title = "资金日记账", businessType = BusinessType.DELETE) + @DeleteMapping("/{journalIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] journalIds) { + return toAjax(iWmsJournalService.deleteWithValidByIds(Arrays.asList(journalIds), true)); + } +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsJournal.java b/klp-wms/src/main/java/com/klp/domain/WmsJournal.java new file mode 100644 index 00000000..ac2f9975 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/WmsJournal.java @@ -0,0 +1,67 @@ +package com.klp.domain; + +import com.baomidou.mybatisplus.annotation.*; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 资金日记账对象 wms_journal + * + * @author klp + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_journal") +public class WmsJournal extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "journal_id") + private Long journalId; + /** + * 日期 + */ + private Date journalDate; + /** + * 摘要 + */ + private String summary; + /** + * 收支类型 + */ + private String transType; + /** + * 对方户名 + */ + private String counterpart; + /** + * 收入金额 + */ + private BigDecimal incomeAmount; + /** + * 支出金额 + */ + private BigDecimal expenseAmount; + /** + * 余额 + */ + private BigDecimal balanceAmount; + /** + * 备注 + */ + private String remark; + /** + * 删除标志(0正常 1删除) + */ + @TableLogic + private Long delFlag; + +} diff --git a/klp-wms/src/main/java/com/klp/domain/WmsJournalEntry.java b/klp-wms/src/main/java/com/klp/domain/WmsJournalEntry.java index d9f2647b..58f113cd 100644 --- a/klp-wms/src/main/java/com/klp/domain/WmsJournalEntry.java +++ b/klp-wms/src/main/java/com/klp/domain/WmsJournalEntry.java @@ -7,7 +7,6 @@ import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 日记账凭证(宽松版)对象 wms_journal_entry diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsJournalBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsJournalBo.java new file mode 100644 index 00000000..fdd5c65e --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsJournalBo.java @@ -0,0 +1,71 @@ +package com.klp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 资金日记账业务对象 wms_journal + * + * @author klp + * @date 2025-08-13 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class WmsJournalBo extends BaseEntity { + + /** + * 主键ID + */ + private Long journalId; + + /** + * 日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date journalDate; + + /** + * 摘要 + */ + private String summary; + + /** + * 收支类型 + */ + private String transType; + + /** + * 对方户名 + */ + private String counterpart; + + /** + * 收入金额 + */ + private BigDecimal incomeAmount; + + /** + * 支出金额 + */ + private BigDecimal expenseAmount; + + /** + * 余额 + */ + private BigDecimal balanceAmount; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsJournalVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsJournalVo.java new file mode 100644 index 00000000..302b0e08 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsJournalVo.java @@ -0,0 +1,81 @@ +package com.klp.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.klp.common.annotation.ExcelDictFormat; +import com.klp.common.convert.ExcelDictConvert; +import lombok.Data; + + +/** + * 资金日记账视图对象 wms_journal + * + * @author klp + * @date 2025-08-13 + */ +@Data +@ExcelIgnoreUnannotated +public class WmsJournalVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long journalId; + + /** + * 日期 + */ + @ExcelProperty(value = "日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date journalDate; + + /** + * 摘要 + */ + @ExcelProperty(value = "摘要") + private String summary; + + /** + * 收支类型 + */ + @ExcelProperty(value = "收支类型") + private String transType; + + /** + * 对方户名 + */ + @ExcelProperty(value = "对方户名") + private String counterpart; + + /** + * 收入金额 + */ + @ExcelProperty(value = "收入金额") + private BigDecimal incomeAmount; + + /** + * 支出金额 + */ + @ExcelProperty(value = "支出金额") + private BigDecimal expenseAmount; + + /** + * 余额 + */ + @ExcelProperty(value = "余额") + private BigDecimal balanceAmount; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsJournalMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsJournalMapper.java new file mode 100644 index 00000000..49188686 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/mapper/WmsJournalMapper.java @@ -0,0 +1,15 @@ +package com.klp.mapper; + +import com.klp.domain.WmsJournal; +import com.klp.domain.vo.WmsJournalVo; +import com.klp.common.core.mapper.BaseMapperPlus; + +/** + * 资金日记账Mapper接口 + * + * @author klp + * @date 2025-08-13 + */ +public interface WmsJournalMapper extends BaseMapperPlus { + +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsJournalService.java b/klp-wms/src/main/java/com/klp/service/IWmsJournalService.java new file mode 100644 index 00000000..733152d8 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/IWmsJournalService.java @@ -0,0 +1,48 @@ +package com.klp.service; + +import com.klp.domain.vo.WmsJournalVo; +import com.klp.domain.bo.WmsJournalBo; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 资金日记账Service接口 + * + * @author klp + * @date 2025-08-13 + */ +public interface IWmsJournalService { + + /** + * 查询资金日记账 + */ + WmsJournalVo queryById(Long journalId); + + /** + * 查询资金日记账列表 + */ + TableDataInfo queryPageList(WmsJournalBo bo, PageQuery pageQuery); + + /** + * 查询资金日记账列表 + */ + List queryList(WmsJournalBo bo); + + /** + * 新增资金日记账 + */ + Boolean insertByBo(WmsJournalBo bo); + + /** + * 修改资金日记账 + */ + Boolean updateByBo(WmsJournalBo bo); + + /** + * 校验并批量删除资金日记账信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} 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 new file mode 100644 index 00000000..96d28cb3 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsJournalServiceImpl.java @@ -0,0 +1,115 @@ +package com.klp.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.klp.domain.bo.WmsJournalBo; +import com.klp.domain.vo.WmsJournalVo; +import com.klp.domain.WmsJournal; +import com.klp.mapper.WmsJournalMapper; +import com.klp.service.IWmsJournalService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 资金日记账Service业务层处理 + * + * @author klp + * @date 2025-08-13 + */ +@RequiredArgsConstructor +@Service +public class WmsJournalServiceImpl implements IWmsJournalService { + + private final WmsJournalMapper baseMapper; + + /** + * 查询资金日记账 + */ + @Override + public WmsJournalVo queryById(Long journalId){ + return baseMapper.selectVoById(journalId); + } + + /** + * 查询资金日记账列表 + */ + @Override + public TableDataInfo queryPageList(WmsJournalBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询资金日记账列表 + */ + @Override + public List queryList(WmsJournalBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsJournalBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getJournalDate() != null, WmsJournal::getJournalDate, bo.getJournalDate()); + lqw.eq(StringUtils.isNotBlank(bo.getSummary()), WmsJournal::getSummary, bo.getSummary()); + lqw.eq(StringUtils.isNotBlank(bo.getTransType()), WmsJournal::getTransType, bo.getTransType()); + lqw.eq(StringUtils.isNotBlank(bo.getCounterpart()), WmsJournal::getCounterpart, bo.getCounterpart()); + lqw.eq(bo.getIncomeAmount() != null, WmsJournal::getIncomeAmount, bo.getIncomeAmount()); + lqw.eq(bo.getExpenseAmount() != null, WmsJournal::getExpenseAmount, bo.getExpenseAmount()); + lqw.eq(bo.getBalanceAmount() != null, WmsJournal::getBalanceAmount, bo.getBalanceAmount()); + return lqw; + } + + /** + * 新增资金日记账 + */ + @Override + public Boolean insertByBo(WmsJournalBo bo) { + WmsJournal add = BeanUtil.toBean(bo, WmsJournal.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setJournalId(add.getJournalId()); + } + return flag; + } + + /** + * 修改资金日记账 + */ + @Override + public Boolean updateByBo(WmsJournalBo bo) { + WmsJournal update = BeanUtil.toBean(bo, WmsJournal.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsJournal entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除资金日记账 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/klp-wms/src/main/resources/mapper/klp/WmsJournalMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsJournalMapper.xml new file mode 100644 index 00000000..49bef9dc --- /dev/null +++ b/klp-wms/src/main/resources/mapper/klp/WmsJournalMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + +