From fae792b6a44073c8a8ab005e0fed1aefe02ab56f Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期二, 22 四月 2025 13:09:01 +0800
Subject: [PATCH] bom 后端代码

---
 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java                |   61 ++++++
 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java                   |   63 +++++++
 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java        |  106 +++++++++++
 aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml                       |  109 ++++++++++++
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java                         |   60 ++++++
 aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java |   98 ++++++++++
 6 files changed, 497 insertions(+), 0 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java
new file mode 100644
index 0000000..b9422ce
--- /dev/null
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java
@@ -0,0 +1,98 @@
+package com.aps.core.controller.basicData;
+
+import com.aps.common.core.utils.poi.ExcelUtil;
+import com.aps.common.core.web.controller.BaseController;
+import com.aps.common.core.web.domain.AjaxResult;
+import com.aps.common.core.web.page.TableDataInfo;
+import com.aps.common.log.annotation.Log;
+import com.aps.common.log.enums.BusinessType;
+import com.aps.common.security.annotation.RequiresPermissions;
+import com.aps.core.domain.ApsBom;
+import com.aps.core.service.IApsBomService;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * BOM鏁版嵁绠$悊Controller
+ * 
+ * @author zhl
+ * @date 2025-04-22
+ */
+@RestController
+@RequestMapping("/ApsBom")
+public class ApsBomController extends BaseController
+{
+    @Autowired
+    private IApsBomService apsBomService;
+
+    /**
+     * 鏌ヨBOM鏁版嵁绠$悊鍒楄〃
+     */
+    /*@RequiresPermissions("apsBom:list")*/
+    @GetMapping("/list")
+    public TableDataInfo list(ApsBom apsBom)
+    {
+        startPage();
+        List<ApsBom> list = apsBomService.selectApsBomList(apsBom);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭BOM鏁版嵁绠$悊鍒楄〃
+     */
+    @RequiresPermissions("apsBom:export")
+    @Log(title = "BOM鏁版嵁绠$悊", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ApsBom apsBom)
+    {
+        List<ApsBom> list = apsBomService.selectApsBomList(apsBom);
+        ExcelUtil<ApsBom> util = new ExcelUtil<ApsBom>(ApsBom.class);
+        util.exportExcel(response, list, "BOM鏁版嵁绠$悊鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇BOM鏁版嵁绠$悊璇︾粏淇℃伅
+     */
+    @RequiresPermissions("apsBom:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(apsBomService.selectApsBomById(id));
+    }
+
+    /**
+     * 鏂板BOM鏁版嵁绠$悊
+     */
+    @RequiresPermissions("apsBom:add")
+    @Log(title = "BOM鏁版嵁绠$悊", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ApsBom apsBom)
+    {
+        return toAjax(apsBomService.insertApsBom(apsBom));
+    }
+
+    /**
+     * 淇敼BOM鏁版嵁绠$悊
+     */
+    @RequiresPermissions("apsBom:edit")
+    @Log(title = "BOM鏁版嵁绠$悊", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ApsBom apsBom)
+    {
+        return toAjax(apsBomService.updateApsBom(apsBom));
+    }
+
+    /**
+     * 鍒犻櫎BOM鏁版嵁绠$悊
+     */
+    @RequiresPermissions("apsBom:remove")
+    @Log(title = "BOM鏁版嵁绠$悊", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(apsBomService.deleteApsBomByIds(ids));
+    }
+}
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java
new file mode 100644
index 0000000..fe35cdc
--- /dev/null
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java
@@ -0,0 +1,60 @@
+package com.aps.core.domain;
+
+import com.aps.common.core.annotation.Excel;
+import com.aps.common.core.web.domain.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * BOM鏁版嵁绠$悊瀵硅薄 aps_bom
+ *
+ * @author zhl
+ * @date 2025-04-22
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ApsBom extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭ID */
+    private Long id;
+
+    /** bomID */
+    @Excel(name = "bomID")
+    private String bomId;
+
+    /** 鐖惰妭鐐笲OM ID */
+    @Excel(name = "鐖惰妭鐐笲OM ID")
+    private String parentBomId;
+
+    /** 鏂欏彿 */
+    @Excel(name = "鏂欏彿")
+    private String itemCode;
+
+    /** 鐗╂枡鎻忚堪 */
+    @Excel(name = "鐗╂枡鎻忚堪")
+    private String itemName;
+
+    /** 鐢熸晥鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "鐢熸晥鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date startDate;
+
+    /** 澶辨晥鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "澶辨晥鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endDate;
+
+    /** 宸ュ巶缂栫爜 */
+    @Excel(name = "宸ュ巶缂栫爜")
+    private String orgCode;
+
+    /** 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛� */
+    private String delFlag;
+
+}
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java
new file mode 100644
index 0000000..3769713
--- /dev/null
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsBomMapper.java
@@ -0,0 +1,63 @@
+package com.aps.core.mapper;
+
+import java.util.List;
+import com.aps.core.domain.ApsBom;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * BOM鏁版嵁绠$悊Mapper鎺ュ彛
+ * 
+ * @author zhl
+ * @date 2025-04-22
+ */
+@Mapper
+public interface ApsBomMapper 
+{
+    /**
+     * 鏌ヨBOM鏁版嵁绠$悊
+     * 
+     * @param id BOM鏁版嵁绠$悊涓婚敭
+     * @return BOM鏁版嵁绠$悊
+     */
+    public ApsBom selectApsBomById(Long id);
+
+    /**
+     * 鏌ヨBOM鏁版嵁绠$悊鍒楄〃
+     * 
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return BOM鏁版嵁绠$悊闆嗗悎
+     */
+    public List<ApsBom> selectApsBomList(ApsBom apsBom);
+
+    /**
+     * 鏂板BOM鏁版嵁绠$悊
+     * 
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return 缁撴灉
+     */
+    public int insertApsBom(ApsBom apsBom);
+
+    /**
+     * 淇敼BOM鏁版嵁绠$悊
+     * 
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return 缁撴灉
+     */
+    public int updateApsBom(ApsBom apsBom);
+
+    /**
+     * 鍒犻櫎BOM鏁版嵁绠$悊
+     * 
+     * @param id BOM鏁版嵁绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteApsBomById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎BOM鏁版嵁绠$悊
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteApsBomByIds(Long[] ids);
+}
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java
new file mode 100644
index 0000000..f3184f7
--- /dev/null
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomService.java
@@ -0,0 +1,61 @@
+package com.aps.core.service;
+
+import java.util.List;
+import com.aps.core.domain.ApsBom;
+
+/**
+ * BOM鏁版嵁绠$悊Service鎺ュ彛
+ * 
+ * @author zhl
+ * @date 2025-04-22
+ */
+public interface IApsBomService 
+{
+    /**
+     * 鏌ヨBOM鏁版嵁绠$悊
+     * 
+     * @param id BOM鏁版嵁绠$悊涓婚敭
+     * @return BOM鏁版嵁绠$悊
+     */
+    public ApsBom selectApsBomById(Long id);
+
+    /**
+     * 鏌ヨBOM鏁版嵁绠$悊鍒楄〃
+     * 
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return BOM鏁版嵁绠$悊闆嗗悎
+     */
+    public List<ApsBom> selectApsBomList(ApsBom apsBom);
+
+    /**
+     * 鏂板BOM鏁版嵁绠$悊
+     * 
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return 缁撴灉
+     */
+    public int insertApsBom(ApsBom apsBom);
+
+    /**
+     * 淇敼BOM鏁版嵁绠$悊
+     * 
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return 缁撴灉
+     */
+    public int updateApsBom(ApsBom apsBom);
+
+    /**
+     * 鎵归噺鍒犻櫎BOM鏁版嵁绠$悊
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑BOM鏁版嵁绠$悊涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteApsBomByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎BOM鏁版嵁绠$悊淇℃伅
+     * 
+     * @param id BOM鏁版嵁绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteApsBomById(Long id);
+}
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java
new file mode 100644
index 0000000..6036b4f
--- /dev/null
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java
@@ -0,0 +1,106 @@
+package com.aps.core.service.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.aps.common.core.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.aps.core.mapper.ApsBomMapper;
+import com.aps.core.domain.ApsBom;
+import com.aps.core.service.IApsBomService;
+
+/**
+ * BOM鏁版嵁绠$悊Service涓氬姟灞傚鐞�
+ * 
+ * @author zhl
+ * @date 2025-04-22
+ */
+@Service
+public class ApsBomServiceImpl implements IApsBomService 
+{
+    @Autowired
+    private ApsBomMapper apsBomMapper;
+
+    /**
+     * 鏌ヨBOM鏁版嵁绠$悊
+     * 
+     * @param id BOM鏁版嵁绠$悊涓婚敭
+     * @return BOM鏁版嵁绠$悊
+     */
+    @Override
+    public ApsBom selectApsBomById(Long id)
+    {
+        return apsBomMapper.selectApsBomById(id);
+    }
+
+    /**
+     * 鏂板BOM鏁版嵁绠$悊
+     * 
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertApsBom(ApsBom apsBom)
+    {
+        apsBom.setCreateTime(DateUtils.getNowDate());
+        return apsBomMapper.insertApsBom(apsBom);
+    }
+
+    /**
+     * 淇敼BOM鏁版嵁绠$悊
+     * 
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateApsBom(ApsBom apsBom)
+    {
+        apsBom.setUpdateTime(DateUtils.getNowDate());
+        return apsBomMapper.updateApsBom(apsBom);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎BOM鏁版嵁绠$悊
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑BOM鏁版嵁绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteApsBomByIds(Long[] ids)
+    {
+        return apsBomMapper.deleteApsBomByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎BOM鏁版嵁绠$悊淇℃伅
+     * 
+     * @param id BOM鏁版嵁绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteApsBomById(Long id)
+    {
+        return apsBomMapper.deleteApsBomById(id);
+    }
+
+    /*-----*/
+
+    /**
+     * 鏌ヨBOM鏁版嵁绠$悊鍒楄〃
+     *
+     * @param apsBom BOM鏁版嵁绠$悊
+     * @return BOM鏁版嵁绠$悊
+     */
+    @Override
+    public List<ApsBom> selectApsBomList(ApsBom apsBom)
+    {
+
+        return apsBomMapper.selectApsBomList(apsBom);
+
+    }
+
+
+}
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml
new file mode 100644
index 0000000..e669db1
--- /dev/null
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomMapper.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.aps.core.mapper.ApsBomMapper">
+    
+    <resultMap type="ApsBom" id="ApsBomResult">
+        <result property="id"    column="id"    />
+        <result property="bomId"    column="bom_id"    />
+        <result property="parentBomId"    column="parent_bom_id"    />
+        <result property="itemCode"    column="item_code"    />
+        <result property="itemName"    column="item_name"    />
+        <result property="startDate"    column="start_date"    />
+        <result property="endDate"    column="end_date"    />
+        <result property="orgCode"    column="org_code"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectApsBomVo">
+        select id, bom_id, parent_bom_id, item_code, item_name, start_date, end_date, org_code, del_flag, create_by, create_time, update_by, update_time from aps_bom
+    </sql>
+
+    <select id="selectApsBomList" parameterType="ApsBom" resultMap="ApsBomResult">
+        <include refid="selectApsBomVo"/>
+        <where>  
+            <if test="bomId != null  and bomId != ''"> and bom_id = #{bomId}</if>
+            <if test="parentBomId != null  and parentBomId != ''"> and parent_bom_id = #{parentBomId}</if>
+            <if test="itemCode != null  and itemCode != ''"> and item_code like '%'||#{itemCode}||'%'</if>
+            <if test="itemName != null  and itemName != ''"> and item_name like '%'|| #{itemName}||'%'</if>
+            <if test="params.beginStartDate != null and params.beginStartDate != '' and params.endStartDate != null and params.endStartDate != ''"> and start_date between #{params.beginStartDate} and #{params.endStartDate}</if>
+            <if test="params.beginEndDate != null and params.beginEndDate != '' and params.endEndDate != null and params.endEndDate != ''"> and end_date between #{params.beginEndDate} and #{params.endEndDate}</if>
+            <if test="orgCode != null  and orgCode != ''"> and org_code = #{orgCode}</if>
+            <if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
+            and del_flag='0'
+        </where>
+        order by parent_bom_id,bom_id
+    </select>
+    
+    <select id="selectApsBomById" parameterType="Long" resultMap="ApsBomResult">
+        <include refid="selectApsBomVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertApsBom" parameterType="ApsBom" useGeneratedKeys="true" keyProperty="id">
+        insert into aps_bom
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="bomId != null">bom_id,</if>
+            <if test="parentBomId != null">parent_bom_id,</if>
+            <if test="itemCode != null">item_code,</if>
+            <if test="itemName != null">item_name,</if>
+            <if test="startDate != null">start_date,</if>
+            <if test="endDate != null">end_date,</if>
+            <if test="orgCode != null">org_code,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="bomId != null">#{bomId},</if>
+            <if test="parentBomId != null">#{parentBomId},</if>
+            <if test="itemCode != null">#{itemCode},</if>
+            <if test="itemName != null">#{itemName},</if>
+            <if test="startDate != null">#{startDate},</if>
+            <if test="endDate != null">#{endDate},</if>
+            <if test="orgCode != null">#{orgCode},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateApsBom" parameterType="ApsBom">
+        update aps_bom
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="bomId != null">bom_id = #{bomId},</if>
+            <if test="parentBomId != null">parent_bom_id = #{parentBomId},</if>
+            <if test="itemCode != null">item_code = #{itemCode},</if>
+            <if test="itemName != null">item_name = #{itemName},</if>
+            <if test="startDate != null">start_date = #{startDate},</if>
+            <if test="endDate != null">end_date = #{endDate},</if>
+            <if test="orgCode != null">org_code = #{orgCode},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteApsBomById" parameterType="Long">
+        delete from aps_bom where id = #{id}
+    </delete>
+
+    <delete id="deleteApsBomByIds" parameterType="String">
+        delete from aps_bom where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3