From 356d7e949674d5ac6c1aa3a42061d4160bb8b8fb Mon Sep 17 00:00:00 2001 From: jhd <1684074631@qq.com> Date: Mon, 29 Jun 2026 14:33:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=AD=90=E8=AF=B7=E8=B4=AD=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/rolling_mill_project_management(1).html | 4645 +++++++++++++++++ .../ErpPurchaseRequisitionController.java | 82 + .../domain/ErpPurchaseRequisitionItem.java | 48 + .../domain/bo/ErpPurchaseRequisitionBo.java | 108 + .../bo/ErpPurchaseRequisitionItemBo.java | 37 + .../vo/ErpPurchaseRequisitionItemVo.java | 40 + .../domain/vo/ErpPurchaseRequisitionVo.java | 108 + .../ErpPurchaseRequisitionItemMapper.java | 15 + .../mapper/ErpPurchaseRequisitionMapper.java | 15 + .../IErpPurchaseRequisitionService.java | 36 + .../ErpPurchaseRequisitionServiceImpl.java | 124 + klp-ui/src/api/erp/purchaseRequisition.js | 54 + .../views/erp/purchaseRequisition/index.vue | 862 +++ 13 files changed, 6174 insertions(+) create mode 100644 docs/rolling_mill_project_management(1).html create mode 100644 klp-erp/src/main/java/com/klp/erp/controller/ErpPurchaseRequisitionController.java create mode 100644 klp-erp/src/main/java/com/klp/erp/domain/ErpPurchaseRequisitionItem.java create mode 100644 klp-erp/src/main/java/com/klp/erp/domain/bo/ErpPurchaseRequisitionBo.java create mode 100644 klp-erp/src/main/java/com/klp/erp/domain/bo/ErpPurchaseRequisitionItemBo.java create mode 100644 klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseRequisitionItemVo.java create mode 100644 klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseRequisitionVo.java create mode 100644 klp-erp/src/main/java/com/klp/erp/mapper/ErpPurchaseRequisitionItemMapper.java create mode 100644 klp-erp/src/main/java/com/klp/erp/mapper/ErpPurchaseRequisitionMapper.java create mode 100644 klp-erp/src/main/java/com/klp/erp/service/IErpPurchaseRequisitionService.java create mode 100644 klp-erp/src/main/java/com/klp/erp/service/impl/ErpPurchaseRequisitionServiceImpl.java create mode 100644 klp-ui/src/api/erp/purchaseRequisition.js create mode 100644 klp-ui/src/views/erp/purchaseRequisition/index.vue diff --git a/docs/rolling_mill_project_management(1).html b/docs/rolling_mill_project_management(1).html new file mode 100644 index 000000000..eb72cc78f --- /dev/null +++ b/docs/rolling_mill_project_management(1).html @@ -0,0 +1,4645 @@ + + + + + +连轧机/可逆轧机设备总包项目管理系统 + + + + + + + + +
+
+
+
项目总览
+ +
+
+ + +
+
+
+ +
+
+ + + + + +
+
+
+ 🧠 思维导图编辑器 + + + + + + + + + + + + + 100% + + + +
+
+
+ +
+
+
+
+
+
➕ 添加子节点
+
↪ 添加兄弟节点
+
✏️ 编辑文字
+
+
📂 折叠/展开
+
🗑 删除节点
+
+ + + + diff --git a/klp-erp/src/main/java/com/klp/erp/controller/ErpPurchaseRequisitionController.java b/klp-erp/src/main/java/com/klp/erp/controller/ErpPurchaseRequisitionController.java new file mode 100644 index 000000000..9b3d0f05a --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/controller/ErpPurchaseRequisitionController.java @@ -0,0 +1,82 @@ +package com.klp.erp.controller; + +import com.klp.common.annotation.Log; +import com.klp.common.annotation.RepeatSubmit; +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.page.TableDataInfo; +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.erp.domain.bo.ErpPurchaseRequisitionBo; +import com.klp.erp.domain.vo.ErpPurchaseRequisitionVo; +import com.klp.erp.service.IErpPurchaseRequisitionService; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Arrays; +import java.util.List; + +/** + * 请购及采购单 + * + * @author klp + * @date 2026-06-29 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/erp/purchaseRequisition") +public class ErpPurchaseRequisitionController extends BaseController { + + private final IErpPurchaseRequisitionService iErpPurchaseRequisitionService; + + /** 查询请购单列表 */ + @GetMapping("/list") + public TableDataInfo list(ErpPurchaseRequisitionBo bo, PageQuery pageQuery) { + return iErpPurchaseRequisitionService.queryPageList(bo, pageQuery); + } + + /** 导出请购单列表 */ + @Log(title = "请购及采购单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ErpPurchaseRequisitionBo bo, HttpServletResponse response) { + List list = iErpPurchaseRequisitionService.queryList(bo); + ExcelUtil.exportExcel(list, "请购及采购单", ErpPurchaseRequisitionVo.class, response); + } + + /** 获取请购单详细信息(含明细) */ + @GetMapping("/{reqId}") + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long reqId) { + return R.ok(iErpPurchaseRequisitionService.queryById(reqId)); + } + + /** 新增请购单 */ + @Log(title = "请购及采购单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ErpPurchaseRequisitionBo bo) { + return toAjax(iErpPurchaseRequisitionService.insertByBo(bo)); + } + + /** 修改请购单 */ + @Log(title = "请购及采购单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ErpPurchaseRequisitionBo bo) { + return toAjax(iErpPurchaseRequisitionService.updateByBo(bo)); + } + + /** 删除请购单 */ + @Log(title = "请购及采购单", businessType = BusinessType.DELETE) + @DeleteMapping("/{reqIds}") + public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] reqIds) { + return toAjax(iErpPurchaseRequisitionService.deleteWithValidByIds(Arrays.asList(reqIds), true)); + } +} diff --git a/klp-erp/src/main/java/com/klp/erp/domain/ErpPurchaseRequisitionItem.java b/klp-erp/src/main/java/com/klp/erp/domain/ErpPurchaseRequisitionItem.java new file mode 100644 index 000000000..199c62c82 --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/domain/ErpPurchaseRequisitionItem.java @@ -0,0 +1,48 @@ +package com.klp.erp.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 请购及采购单明细对象 erp_purchase_requisition_item + * + * @author klp + * @date 2026-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("erp_purchase_requisition_item") +public class ErpPurchaseRequisitionItem extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 明细ID */ + @TableId(value = "item_id") + private Long itemId; + + /** 关联请购单ID */ + private Long reqId; + + /** 项次 */ + private String seq; + + /** 品名 */ + private String itemName; + + /** 规格 */ + private String specification; + + /** 单位 */ + private String unit; + + /** 请购量 */ + private String quantity; + + /** 删除标志 */ + @TableLogic + private String delFlag; +} diff --git a/klp-erp/src/main/java/com/klp/erp/domain/bo/ErpPurchaseRequisitionBo.java b/klp-erp/src/main/java/com/klp/erp/domain/bo/ErpPurchaseRequisitionBo.java new file mode 100644 index 000000000..a7d12f3dc --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/domain/bo/ErpPurchaseRequisitionBo.java @@ -0,0 +1,108 @@ +package com.klp.erp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import com.klp.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 请购及采购单业务对象 erp_purchase_requisition + * + * @author klp + * @date 2026-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ErpPurchaseRequisitionBo extends BaseEntity { + + /** 主键 */ + @NotNull(message = "主键不能为空", groups = {EditGroup.class}) + private Long reqId; + + /** 请购部门 */ + private String reqDept; + + /** 品名 */ + private String itemName; + + /** 规格 */ + private String specification; + + /** 单位 */ + private String unit; + + /** 请购量 */ + private String quantity; + + /** 类别 */ + private String category; + + /** 需求日期 */ + private String requiredDate; + + /** 用途说明 */ + private String purposeDesc; + + /** 使用部门 */ + private String useDept; + + /** 品检条件 */ + private String inspectionCondition; + + /** 试用天数 */ + private String trialDays; + + /** 前期采购记录 */ + private String prevPurchaseRecord; + + /** 采购拟办 */ + private String purchaseProposal; + + /** 付款条件 */ + private String paymentTerms; + + /** 采购金额 */ + private String totalAmount; + + /** 董事长(采购单位) */ + private String signPurchaseChairman; + + /** 部长/厂长(采购单位) */ + private String signPurchaseManager; + + /** 主任(采购单位) */ + private String signPurchaseDirector; + + /** 经办(采购单位) */ + private String signPurchaseHandler; + + /** 生产总经理(请购单位) */ + private String signRequestGm; + + /** 厂长(请购单位) */ + private String signRequestFactoryMgr; + + /** 主任(请购单位) */ + private String signRequestDirector; + + /** 经办(请购单位) */ + private String signRequestHandler; + + /** 指定卸货位 */ + private String unloadLocation; + + /** 卸货其他位置 */ + private String unloadOther; + + /** 状态 */ + private String formStatus; + + /** 备注 */ + private String remark; + + /** 明细行 */ + private List items; +} diff --git a/klp-erp/src/main/java/com/klp/erp/domain/bo/ErpPurchaseRequisitionItemBo.java b/klp-erp/src/main/java/com/klp/erp/domain/bo/ErpPurchaseRequisitionItemBo.java new file mode 100644 index 000000000..57e0ede24 --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/domain/bo/ErpPurchaseRequisitionItemBo.java @@ -0,0 +1,37 @@ +package com.klp.erp.domain.bo; + +import com.klp.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 请购及采购单明细业务对象 erp_purchase_requisition_item + * + * @author klp + * @date 2026-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ErpPurchaseRequisitionItemBo extends BaseEntity { + + /** 明细ID */ + private Long itemId; + + /** 关联请购单ID */ + private Long reqId; + + /** 项次 */ + private String seq; + + /** 品名 */ + private String itemName; + + /** 规格 */ + private String specification; + + /** 单位 */ + private String unit; + + /** 请购量 */ + private String quantity; +} diff --git a/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseRequisitionItemVo.java b/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseRequisitionItemVo.java new file mode 100644 index 000000000..5aefa57df --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseRequisitionItemVo.java @@ -0,0 +1,40 @@ +package com.klp.erp.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 请购及采购单明细视图对象 erp_purchase_requisition_item + * + * @author klp + * @date 2026-06-29 + */ +@Data +@ExcelIgnoreUnannotated +public class ErpPurchaseRequisitionItemVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ExcelProperty(value = "明细ID") + private Long itemId; + + private Long reqId; + + @ExcelProperty(value = "项次") + private String seq; + + @ExcelProperty(value = "品名") + private String itemName; + + @ExcelProperty(value = "规格") + private String specification; + + @ExcelProperty(value = "单位") + private String unit; + + @ExcelProperty(value = "请购量") + private String quantity; +} diff --git a/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseRequisitionVo.java b/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseRequisitionVo.java new file mode 100644 index 000000000..8a715a776 --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchaseRequisitionVo.java @@ -0,0 +1,108 @@ +package com.klp.erp.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 请购及采购单视图对象 erp_purchase_requisition + * + * @author klp + * @date 2026-06-29 + */ +@Data +@ExcelIgnoreUnannotated +public class ErpPurchaseRequisitionVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ExcelProperty(value = "主键") + private Long reqId; + + @ExcelProperty(value = "请购部门") + private String reqDept; + + @ExcelProperty(value = "品名") + private String itemName; + + @ExcelProperty(value = "规格") + private String specification; + + @ExcelProperty(value = "单位") + private String unit; + + @ExcelProperty(value = "请购量") + private String quantity; + + @ExcelProperty(value = "类别") + private String category; + + @ExcelProperty(value = "需求日期") + private String requiredDate; + + @ExcelProperty(value = "用途说明") + private String purposeDesc; + + @ExcelProperty(value = "使用部门") + private String useDept; + + @ExcelProperty(value = "品检条件") + private String inspectionCondition; + + @ExcelProperty(value = "试用天数") + private String trialDays; + + @ExcelProperty(value = "前期采购记录") + private String prevPurchaseRecord; + + @ExcelProperty(value = "采购拟办") + private String purchaseProposal; + + @ExcelProperty(value = "付款条件") + private String paymentTerms; + + @ExcelProperty(value = "采购金额") + private String totalAmount; + + @ExcelProperty(value = "董事长(采购单位)") + private String signPurchaseChairman; + + @ExcelProperty(value = "部长/厂长(采购单位)") + private String signPurchaseManager; + + @ExcelProperty(value = "主任(采购单位)") + private String signPurchaseDirector; + + @ExcelProperty(value = "经办(采购单位)") + private String signPurchaseHandler; + + @ExcelProperty(value = "生产总经理(请购单位)") + private String signRequestGm; + + @ExcelProperty(value = "厂长(请购单位)") + private String signRequestFactoryMgr; + + @ExcelProperty(value = "主任(请购单位)") + private String signRequestDirector; + + @ExcelProperty(value = "经办(请购单位)") + private String signRequestHandler; + + @ExcelProperty(value = "指定卸货位") + private String unloadLocation; + + @ExcelProperty(value = "卸货其他位置") + private String unloadOther; + + @ExcelProperty(value = "状态") + private String formStatus; + + @ExcelProperty(value = "备注") + private String remark; + + /** 明细行 */ + private List items; +} diff --git a/klp-erp/src/main/java/com/klp/erp/mapper/ErpPurchaseRequisitionItemMapper.java b/klp-erp/src/main/java/com/klp/erp/mapper/ErpPurchaseRequisitionItemMapper.java new file mode 100644 index 000000000..717c94fbe --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/mapper/ErpPurchaseRequisitionItemMapper.java @@ -0,0 +1,15 @@ +package com.klp.erp.mapper; + +import com.klp.common.core.mapper.BaseMapperPlus; +import com.klp.erp.domain.ErpPurchaseRequisitionItem; +import com.klp.erp.domain.vo.ErpPurchaseRequisitionItemVo; + +/** + * 请购及采购单明细Mapper接口 + * + * @author klp + * @date 2026-06-29 + */ +public interface ErpPurchaseRequisitionItemMapper extends BaseMapperPlus { + +} diff --git a/klp-erp/src/main/java/com/klp/erp/mapper/ErpPurchaseRequisitionMapper.java b/klp-erp/src/main/java/com/klp/erp/mapper/ErpPurchaseRequisitionMapper.java new file mode 100644 index 000000000..c70f4efe6 --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/mapper/ErpPurchaseRequisitionMapper.java @@ -0,0 +1,15 @@ +package com.klp.erp.mapper; + +import com.klp.common.core.mapper.BaseMapperPlus; +import com.klp.erp.domain.ErpPurchaseRequisition; +import com.klp.erp.domain.vo.ErpPurchaseRequisitionVo; + +/** + * 请购及采购单Mapper接口 + * + * @author klp + * @date 2026-06-29 + */ +public interface ErpPurchaseRequisitionMapper extends BaseMapperPlus { + +} diff --git a/klp-erp/src/main/java/com/klp/erp/service/IErpPurchaseRequisitionService.java b/klp-erp/src/main/java/com/klp/erp/service/IErpPurchaseRequisitionService.java new file mode 100644 index 000000000..131ccc649 --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/service/IErpPurchaseRequisitionService.java @@ -0,0 +1,36 @@ +package com.klp.erp.service; + +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.page.TableDataInfo; +import com.klp.erp.domain.bo.ErpPurchaseRequisitionBo; +import com.klp.erp.domain.vo.ErpPurchaseRequisitionVo; + +import java.util.Collection; +import java.util.List; + +/** + * 请购及采购单Service接口 + * + * @author klp + * @date 2026-06-29 + */ +public interface IErpPurchaseRequisitionService { + + /** 查询请购单详情(含明细) */ + ErpPurchaseRequisitionVo queryById(Long reqId); + + /** 分页查询请购单 */ + TableDataInfo queryPageList(ErpPurchaseRequisitionBo bo, PageQuery pageQuery); + + /** 查询请购单列表 */ + List queryList(ErpPurchaseRequisitionBo bo); + + /** 新增请购单(含明细) */ + Boolean insertByBo(ErpPurchaseRequisitionBo bo); + + /** 修改请购单(含明细) */ + Boolean updateByBo(ErpPurchaseRequisitionBo bo); + + /** 校验并批量删除请购单 */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/klp-erp/src/main/java/com/klp/erp/service/impl/ErpPurchaseRequisitionServiceImpl.java b/klp-erp/src/main/java/com/klp/erp/service/impl/ErpPurchaseRequisitionServiceImpl.java new file mode 100644 index 000000000..e13ee85ff --- /dev/null +++ b/klp-erp/src/main/java/com/klp/erp/service/impl/ErpPurchaseRequisitionServiceImpl.java @@ -0,0 +1,124 @@ +package com.klp.erp.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.klp.common.core.domain.PageQuery; +import com.klp.common.core.page.TableDataInfo; +import com.klp.common.utils.StringUtils; +import com.klp.erp.domain.ErpPurchaseRequisition; +import com.klp.erp.domain.ErpPurchaseRequisitionItem; +import com.klp.erp.domain.bo.ErpPurchaseRequisitionBo; +import com.klp.erp.domain.bo.ErpPurchaseRequisitionItemBo; +import com.klp.erp.domain.vo.ErpPurchaseRequisitionVo; +import com.klp.erp.mapper.ErpPurchaseRequisitionItemMapper; +import com.klp.erp.mapper.ErpPurchaseRequisitionMapper; +import com.klp.erp.service.IErpPurchaseRequisitionService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; +import java.util.List; + +/** + * 请购及采购单Service业务层处理 + * + * @author klp + * @date 2026-06-29 + */ +@RequiredArgsConstructor +@Service +public class ErpPurchaseRequisitionServiceImpl implements IErpPurchaseRequisitionService { + + private final ErpPurchaseRequisitionMapper baseMapper; + private final ErpPurchaseRequisitionItemMapper itemMapper; + + @Override + public ErpPurchaseRequisitionVo queryById(Long reqId) { + ErpPurchaseRequisitionVo vo = baseMapper.selectVoById(reqId); + if (vo == null) { + return null; + } + // 明细 + vo.setItems(itemMapper.selectVoList(Wrappers.lambdaQuery(ErpPurchaseRequisitionItem.class) + .eq(ErpPurchaseRequisitionItem::getReqId, reqId))); + return vo; + } + + @Override + public TableDataInfo queryPageList(ErpPurchaseRequisitionBo bo, PageQuery pageQuery) { + Page result = baseMapper.selectVoPage(pageQuery.build(), buildQueryWrapper(bo)); + return TableDataInfo.build(result); + } + + @Override + public List queryList(ErpPurchaseRequisitionBo bo) { + return baseMapper.selectVoList(buildQueryWrapper(bo)); + } + + private LambdaQueryWrapper buildQueryWrapper(ErpPurchaseRequisitionBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getReqDept()), ErpPurchaseRequisition::getReqDept, bo.getReqDept()); + lqw.like(StringUtils.isNotBlank(bo.getItemName()), ErpPurchaseRequisition::getItemName, bo.getItemName()); + lqw.eq(StringUtils.isNotBlank(bo.getFormStatus()), ErpPurchaseRequisition::getFormStatus, bo.getFormStatus()); + lqw.orderByDesc(ErpPurchaseRequisition::getReqId); + return lqw; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(ErpPurchaseRequisitionBo bo) { + ErpPurchaseRequisition add = BeanUtil.toBean(bo, ErpPurchaseRequisition.class); + if (StringUtils.isBlank(add.getFormStatus())) { + add.setFormStatus("0"); + } + add.setReqId(null); + if (baseMapper.insert(add) <= 0) { + return false; + } + bo.setReqId(add.getReqId()); + saveItems(add.getReqId(), bo.getItems()); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateByBo(ErpPurchaseRequisitionBo bo) { + ErpPurchaseRequisition update = baseMapper.selectById(bo.getReqId()); + if (update == null) { + return false; + } + BeanUtil.copyProperties(bo, update, "reqId", "createBy", "createTime"); + baseMapper.updateById(update); + // 覆盖式重写明细 + itemMapper.delete(Wrappers.lambdaQuery(ErpPurchaseRequisitionItem.class) + .eq(ErpPurchaseRequisitionItem::getReqId, bo.getReqId())); + saveItems(bo.getReqId(), bo.getItems()); + return true; + } + + private void saveItems(Long reqId, List items) { + if (items == null || items.isEmpty()) { + return; + } + for (ErpPurchaseRequisitionItemBo itemBo : items) { + ErpPurchaseRequisitionItem item = BeanUtil.toBean(itemBo, ErpPurchaseRequisitionItem.class); + item.setItemId(null); + item.setReqId(reqId); + itemMapper.insert(item); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + for (Long reqId : ids) { + itemMapper.delete(Wrappers.lambdaQuery(ErpPurchaseRequisitionItem.class) + .eq(ErpPurchaseRequisitionItem::getReqId, reqId)); + } + return baseMapper.deleteBatchIds(ids) > 0; + } + +} diff --git a/klp-ui/src/api/erp/purchaseRequisition.js b/klp-ui/src/api/erp/purchaseRequisition.js new file mode 100644 index 000000000..77d9fdbc6 --- /dev/null +++ b/klp-ui/src/api/erp/purchaseRequisition.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询请购单列表 +export function listPurchaseRequisition(query) { + return request({ + url: '/erp/purchaseRequisition/list', + method: 'get', + params: query + }) +} + +// 查询请购单详细(含明细) +export function getPurchaseRequisition(reqId) { + return request({ + url: '/erp/purchaseRequisition/' + reqId, + method: 'get' + }) +} + +// 新增请购单 +export function addPurchaseRequisition(data) { + return request({ + url: '/erp/purchaseRequisition', + method: 'post', + data + }) +} + +// 修改请购单 +export function updatePurchaseRequisition(data) { + return request({ + url: '/erp/purchaseRequisition', + method: 'put', + data + }) +} + +// 删除请购单 +export function delPurchaseRequisition(reqIds) { + return request({ + url: '/erp/purchaseRequisition/' + reqIds, + method: 'delete' + }) +} + +// 导出请购单 +export function exportPurchaseRequisition(query) { + return request({ + url: '/erp/purchaseRequisition/export', + method: 'post', + params: query, + responseType: 'blob' + }) +} diff --git a/klp-ui/src/views/erp/purchaseRequisition/index.vue b/klp-ui/src/views/erp/purchaseRequisition/index.vue new file mode 100644 index 000000000..3fafa54fc --- /dev/null +++ b/klp-ui/src/views/erp/purchaseRequisition/index.vue @@ -0,0 +1,862 @@ + + + + +