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