物料管理相关代码2.0

This commit is contained in:
2026-03-12 14:25:11 +08:00
parent 454128ae64
commit 65773de7bf
14 changed files with 841 additions and 273 deletions

View File

@@ -1,111 +1,232 @@
<?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">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shzg.project.worn.mapper.WornMaterialMapper">
<resultMap type="WornMaterial" id="WornMaterialResult">
<result property="id" column="id" />
<result property="materialName" column="material_name" />
<result property="materialShortName" column="material_short_name" />
<result property="materialCode" column="material_code" />
<result property="typeId" column="type_id" />
<result property="unitId" column="unit_id" />
<result property="materialCategory" column="material_category" />
<result property="kgFactor" column="kg_factor" />
<result property="specification" column="specification" />
<result property="model" column="model" />
<result property="barcode" column="barcode" />
<result property="weight" column="weight" />
<result property="description" column="description" />
<result property="orderNum" column="order_num" />
<result property="status" column="status" />
<result property="isDelete" column="is_delete" />
<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 id="WornMaterialResult" type="com.shzg.project.worn.domain.WornMaterial">
<id property="id" column="id"/>
<result property="materialName" column="material_name"/>
<result property="materialShortName" column="material_short_name"/>
<result property="materialCode" column="material_code"/>
<result property="typeId" column="type_id"/>
<result property="unitId" column="unit_id"/>
<result property="materialCategory" column="material_category"/>
<result property="kgFactor" column="kg_factor"/>
<result property="specification" column="specification"/>
<result property="model" column="model"/>
<result property="barcode" column="barcode"/>
<result property="weight" column="weight"/>
<result property="description" column="description"/>
<result property="orderNum" column="order_num"/>
<result property="status" column="status"/>
<result property="isDelete" column="is_delete"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="unitName" column="unit_name"/>
<result property="typeName" column="type_name"/>
<result property="typeAncestors" column="ancestors"/>
<result property="typeParentNames" column="type_parent_names"/>
</resultMap>
<sql id="selectWornMaterialVo">
select id, material_name, material_short_name, material_code, type_id, unit_id, material_category, kg_factor, specification, model, barcode, weight, description, order_num, status, is_delete, create_by, create_time, update_by, update_time from worn_material
SELECT
wm.id,
wm.material_name,
wm.material_short_name,
wm.material_code,
wm.type_id,
wm.unit_id,
wm.material_category,
wm.kg_factor,
wm.specification,
wm.model,
wm.barcode,
wm.weight,
wm.description,
wm.order_num,
wm.status,
wm.is_delete,
wm.create_by,
wm.create_time,
wm.update_by,
wm.update_time,
u.unit_name,
t.type_name,
t.ancestors,
(
SELECT GROUP_CONCAT(tp.type_name ORDER BY tp.id)
FROM worn_material_type tp
WHERE FIND_IN_SET(tp.id, t.ancestors)
) AS type_parent_names
FROM worn_material wm
LEFT JOIN worn_material_unit u
ON wm.unit_id = u.id
LEFT JOIN worn_material_type t
ON wm.type_id = t.id
</sql>
<select id="selectWornMaterialList" parameterType="WornMaterial" resultMap="WornMaterialResult">
<select id="selectWornMaterialList"
parameterType="com.shzg.project.worn.domain.WornMaterial"
resultMap="WornMaterialResult">
<include refid="selectWornMaterialVo"/>
<where>
<if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
<if test="materialShortName != null and materialShortName != ''"> and material_short_name like concat('%', #{materialShortName}, '%')</if>
<if test="materialCode != null and materialCode != ''"> and material_code = #{materialCode}</if>
<if test="typeId != null "> and type_id = #{typeId}</if>
<if test="unitId != null "> and unit_id = #{unitId}</if>
<if test="materialCategory != null and materialCategory != ''"> and material_category = #{materialCategory}</if>
<if test="kgFactor != null "> and kg_factor = #{kgFactor}</if>
<if test="specification != null and specification != ''"> and specification = #{specification}</if>
<if test="model != null and model != ''"> and model = #{model}</if>
<if test="barcode != null and barcode != ''"> and barcode = #{barcode}</if>
<if test="weight != null "> and weight = #{weight}</if>
<if test="description != null and description != ''"> and description = #{description}</if>
<if test="orderNum != null "> and order_num = #{orderNum}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
<if test="isDelete != null and isDelete != ''"> and is_delete = #{isDelete}</if>
<where>
<if test="materialName != null and materialName != ''">
AND wm.material_name LIKE CONCAT('%',#{materialName},'%')
</if>
<if test="materialShortName != null and materialShortName != ''">
AND wm.material_short_name LIKE CONCAT('%',#{materialShortName},'%')
</if>
<if test="materialCode != null and materialCode != ''">
AND wm.material_code = #{materialCode}
</if>
<if test="typeId != null">
AND wm.type_id = #{typeId}
</if>
<if test="unitId != null">
AND wm.unit_id = #{unitId}
</if>
<if test="materialCategory != null and materialCategory != ''">
AND wm.material_category = #{materialCategory}
</if>
<if test="kgFactor != null">
AND wm.kg_factor = #{kgFactor}
</if>
<if test="specification != null and specification != ''">
AND wm.specification = #{specification}
</if>
<if test="model != null and model != ''">
AND wm.model = #{model}
</if>
<if test="barcode != null and barcode != ''">
AND wm.barcode = #{barcode}
</if>
<if test="weight != null">
AND wm.weight = #{weight}
</if>
<if test="description != null and description != ''">
AND wm.description = #{description}
</if>
<if test="orderNum != null">
AND wm.order_num = #{orderNum}
</if>
<if test="status != null and status != ''">
AND wm.status = #{status}
</if>
<if test="isDelete != null and isDelete != ''">
AND wm.is_delete = #{isDelete}
</if>
</where>
</select>
<select id="selectWornMaterialById" parameterType="Long" resultMap="WornMaterialResult">
<include refid="selectWornMaterialVo"/>
where id = #{id}
</select>
<insert id="insertWornMaterial" parameterType="WornMaterial" useGeneratedKeys="true" keyProperty="id">
insert into worn_material
<select id="selectWornMaterialById"
parameterType="Long"
resultMap="WornMaterialResult">
<include refid="selectWornMaterialVo"/>
WHERE wm.id = #{id}
</select>
<insert id="insertWornMaterial"
parameterType="com.shzg.project.worn.domain.WornMaterial"
useGeneratedKeys="true"
keyProperty="id">
INSERT INTO worn_material
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="materialName != null and materialName != ''">material_name,</if>
<if test="materialShortName != null">material_short_name,</if>
<if test="materialShortName != null and materialShortName != ''">material_short_name,</if>
<if test="materialCode != null and materialCode != ''">material_code,</if>
<if test="typeId != null">type_id,</if>
<if test="unitId != null">unit_id,</if>
<if test="materialCategory != null">material_category,</if>
<if test="materialCategory != null and materialCategory != ''">material_category,</if>
<if test="kgFactor != null">kg_factor,</if>
<if test="specification != null">specification,</if>
<if test="model != null">model,</if>
<if test="barcode != null">barcode,</if>
<if test="specification != null and specification != ''">specification,</if>
<if test="model != null and model != ''">model,</if>
<if test="barcode != null and barcode != ''">barcode,</if>
<if test="weight != null">weight,</if>
<if test="description != null">description,</if>
<if test="description != null and description != ''">description,</if>
<if test="orderNum != null">order_num,</if>
<if test="status != null">status,</if>
<if test="isDelete != null">is_delete,</if>
<if test="createBy != null">create_by,</if>
<if test="status != null and status != ''">status,</if>
<if test="isDelete != null and isDelete != ''">is_delete,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateBy != null and updateBy != ''">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="materialName != null and materialName != ''">#{materialName},</if>
<if test="materialShortName != null">#{materialShortName},</if>
<if test="materialShortName != null and materialShortName != ''">#{materialShortName},</if>
<if test="materialCode != null and materialCode != ''">#{materialCode},</if>
<if test="typeId != null">#{typeId},</if>
<if test="unitId != null">#{unitId},</if>
<if test="materialCategory != null">#{materialCategory},</if>
<if test="materialCategory != null and materialCategory != ''">#{materialCategory},</if>
<if test="kgFactor != null">#{kgFactor},</if>
<if test="specification != null">#{specification},</if>
<if test="model != null">#{model},</if>
<if test="barcode != null">#{barcode},</if>
<if test="specification != null and specification != ''">#{specification},</if>
<if test="model != null and model != ''">#{model},</if>
<if test="barcode != null and barcode != ''">#{barcode},</if>
<if test="weight != null">#{weight},</if>
<if test="description != null">#{description},</if>
<if test="description != null and description != ''">#{description},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="status != null">#{status},</if>
<if test="isDelete != null">#{isDelete},</if>
<if test="createBy != null">#{createBy},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="isDelete != null and isDelete != ''">#{isDelete},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateBy != null and updateBy != ''">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</trim>
</insert>
<update id="updateWornMaterial" parameterType="WornMaterial">
update worn_material
<update id="updateWornMaterial"
parameterType="com.shzg.project.worn.domain.WornMaterial">
UPDATE worn_material
<trim prefix="SET" suffixOverrides=",">
<if test="materialName != null and materialName != ''">material_name = #{materialName},</if>
<if test="materialShortName != null">material_short_name = #{materialShortName},</if>
<if test="materialCode != null and materialCode != ''">material_code = #{materialCode},</if>
@@ -121,22 +242,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="orderNum != null">order_num = #{orderNum},</if>
<if test="status != null">status = #{status},</if>
<if test="isDelete != null">is_delete = #{isDelete},</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}
WHERE id = #{id}
</update>
<delete id="deleteWornMaterialById" parameterType="Long">
delete from worn_material where id = #{id}
DELETE FROM worn_material
WHERE id = #{id}
</delete>
<delete id="deleteWornMaterialByIds" parameterType="String">
delete from worn_material where id in
<delete id="deleteWornMaterialByIds" parameterType="Long">
DELETE FROM worn_material
WHERE id IN
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="selectMaxMaterialCode" resultType="java.lang.String">
SELECT MAX(material_code)
FROM worn_material
</select>
</mapper>

View File

@@ -28,7 +28,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectWornMaterialTypeList" parameterType="WornMaterialType" resultMap="WornMaterialTypeResult">
<include refid="selectWornMaterialTypeVo"/>
<where>
<where>
is_delete = '0'
<if test="parentId != null "> and parent_id = #{parentId}</if>
<if test="ancestors != null and ancestors != ''"> and ancestors = #{ancestors}</if>
<if test="typeCode != null and typeCode != ''"> and type_code = #{typeCode}</if>
@@ -39,7 +40,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="orderNum != null "> and order_num = #{orderNum}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
<if test="isDelete != null and isDelete != ''"> and is_delete = #{isDelete}</if>
</where>
order by order_num</where>
</select>
<select id="selectWornMaterialTypeById" parameterType="Long" resultMap="WornMaterialTypeResult">
@@ -114,4 +116,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<select id="selectMaxTypeCode" resultType="java.lang.String">
SELECT type_code
FROM worn_material_type
WHERE type_code LIKE 'MT%'
ORDER BY type_code DESC
LIMIT 1
</select>
<select id="selectChildCountByParentId" parameterType="Long" resultType="int">
SELECT COUNT(1)
FROM worn_material_type
WHERE parent_id = #{parentId}
AND is_delete = '0'
</select>
<!-- 查询所有子节点 -->
<select id="selectChildrenById" parameterType="Long" resultMap="WornMaterialTypeResult">
SELECT *
FROM worn_material_type
WHERE ancestors LIKE CONCAT('%,', #{id}, ',%')
AND is_delete = '0'
</select>
<!-- 更新子节点 ancestors -->
<update id="updateChildrenAncestors" parameterType="WornMaterialType">
UPDATE worn_material_type
SET ancestors = #{ancestors}
WHERE id = #{id}
</update>
</mapper>

View File

@@ -1,44 +1,92 @@
<?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">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shzg.project.worn.mapper.WornMaterialUnitMapper">
<resultMap type="WornMaterialUnit" id="WornMaterialUnitResult">
<result property="id" column="id" />
<result property="unitName" column="unit_name" />
<result property="description" column="description" />
<result property="orderNum" column="order_num" />
<result property="status" column="status" />
<result property="isDelete" column="is_delete" />
<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 id="WornMaterialUnitResult" type="com.shzg.project.worn.domain.WornMaterialUnit">
<id property="id" column="id"/>
<result property="unitName" column="unit_name"/>
<result property="description" column="description"/>
<result property="orderNum" column="order_num"/>
<result property="status" column="status"/>
<result property="isDelete" column="is_delete"/>
<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="selectWornMaterialUnitVo">
select id, unit_name, description, order_num, status, is_delete, create_by, create_time, update_by, update_time from worn_material_unit
SELECT
id,
unit_name,
description,
order_num,
status,
is_delete,
create_by,
create_time,
update_by,
update_time
FROM worn_material_unit
</sql>
<select id="selectWornMaterialUnitList" parameterType="WornMaterialUnit" resultMap="WornMaterialUnitResult">
<select id="selectWornMaterialUnitList"
parameterType="com.shzg.project.worn.domain.WornMaterialUnit"
resultMap="WornMaterialUnitResult">
<include refid="selectWornMaterialUnitVo"/>
<where>
<if test="unitName != null and unitName != ''"> and unit_name like concat('%', #{unitName}, '%')</if>
<if test="description != null and description != ''"> and description = #{description}</if>
<if test="orderNum != null "> and order_num = #{orderNum}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
<if test="isDelete != null and isDelete != ''"> and is_delete = #{isDelete}</if>
<where>
<if test="unitName != null and unitName != ''">
AND unit_name LIKE CONCAT('%',#{unitName},'%')
</if>
<if test="description != null and description != ''">
AND description = #{description}
</if>
<if test="orderNum != null">
AND order_num = #{orderNum}
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="isDelete != null and isDelete != ''">
AND is_delete = #{isDelete}
</if>
</where>
</select>
<select id="selectWornMaterialUnitById" parameterType="Long" resultMap="WornMaterialUnitResult">
<include refid="selectWornMaterialUnitVo"/>
where id = #{id}
</select>
<insert id="insertWornMaterialUnit" parameterType="WornMaterialUnit" useGeneratedKeys="true" keyProperty="id">
insert into worn_material_unit
<select id="selectWornMaterialUnitById"
parameterType="Long"
resultMap="WornMaterialUnitResult">
<include refid="selectWornMaterialUnitVo"/>
WHERE id = #{id}
</select>
<insert id="insertWornMaterialUnit"
parameterType="com.shzg.project.worn.domain.WornMaterialUnit"
useGeneratedKeys="true"
keyProperty="id">
INSERT INTO worn_material_unit
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="unitName != null and unitName != ''">unit_name,</if>
<if test="description != null">description,</if>
@@ -49,8 +97,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<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=",">
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="unitName != null and unitName != ''">#{unitName},</if>
<if test="description != null">#{description},</if>
<if test="orderNum != null">#{orderNum},</if>
@@ -60,11 +109,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</trim>
</insert>
<update id="updateWornMaterialUnit" parameterType="WornMaterialUnit">
update worn_material_unit
<update id="updateWornMaterialUnit"
parameterType="com.shzg.project.worn.domain.WornMaterialUnit">
UPDATE worn_material_unit
<trim prefix="SET" suffixOverrides=",">
<if test="unitName != null and unitName != ''">unit_name = #{unitName},</if>
<if test="description != null">description = #{description},</if>
@@ -76,17 +130,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
WHERE id = #{id}
</update>
<delete id="deleteWornMaterialUnitById" parameterType="Long">
delete from worn_material_unit where id = #{id}
DELETE FROM worn_material_unit
WHERE id = #{id}
</delete>
<delete id="deleteWornMaterialUnitByIds" parameterType="String">
delete from worn_material_unit where id in
DELETE FROM worn_material_unit
WHERE id IN
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>