devicesmgt/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseAccessoryMapper.xml

350 lines
18 KiB
XML
Raw Normal View History

2024-01-16 17:11:57 +08:00
<?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.bonus.sgzb.material.mapper.PurchaseAccessoryMapper">
2024-01-17 18:28:39 +08:00
<resultMap type="com.bonus.sgzb.material.domain.PurchasePartDetails" id="PurchasePartDetailsResult">
<result property="id" column="id" />
<result property="taskId" column="task_id" />
<result property="partId" column="part_id" />
<result property="purchasePrice" column="purchase_price" />
<result property="purchaseNum" column="purchase_num" />
<result property="checkNum" column="check_num" />
<result property="checkResult" column="check_result" />
<result property="supplierId" column="supplier_id" />
<result property="status" column="status" />
<result property="createBy" column="create_by" />
<result property="productionTime" column="production_time" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="checkUrlName" column="check_url_name" />
<result property="checkUrl" column="check_url" />
<result property="fileName" column="file_name" />
<result property="fileUrl" column="file_url" />
<result property="companyId" column="company_id" />
</resultMap>
<resultMap type="com.bonus.sgzb.material.domain.PurchasePartInfo" id="PurchasePartInfoResult">
<result property="taskId" column="task_id" />
<result property="purchaseTime" column="purchase_time" />
<result property="arrivalTime" column="arrival_time" />
<result property="purchaser" column="purchaser" />
<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="remark" column="remark" />
<result property="companyId" column="company_id" />
</resultMap>
2024-01-16 17:11:57 +08:00
<insert id="insertPurchasePartDetailsList">
<foreach item="partDetails" collection="purchasePartDetailsList" open="" separator=";" close="">
insert into purchase_part_details
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="partDetails.taskId != null">task_id,</if>
<if test="partDetails.partId != null">part_id,</if>
<if test="partDetails.purchasePrice != null">purchase_price,</if>
<if test="partDetails.purchaseNum != null">purchase_num,</if>
<if test="partDetails.checkNum != null">check_num,</if>
<if test="partDetails.checkResult != null">check_result,</if>
<if test="partDetails.supplierId != null">supplier_id,</if>
<if test="partDetails.createBy != null">create_by,</if>
<if test="partDetails.productionTime != null">production_time,</if>
<if test="partDetails.createTime != null">create_time,</if>
<if test="partDetails.updateBy != null">update_by,</if>
<if test="partDetails.updateTime != null">update_time,</if>
<if test="partDetails.remark != null">remark,</if>
<if test="partDetails.fileName != null">file_name,</if>
<if test="partDetails.fileUrl != null">file_url,</if>
<if test="partDetails.companyId != null">company_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="partDetails.taskId != null">#{partDetails.taskId},</if>
<if test="partDetails.partId != null">#{partDetails.partId},</if>
<if test="partDetails.purchasePrice != null">#{partDetails.purchasePrice},</if>
<if test="partDetails.purchaseNum != null">#{partDetails.purchaseNum},</if>
<if test="partDetails.checkNum != null">#{partDetails.checkNum},</if>
<if test="partDetails.checkResult != null">#{partDetails.checkResult},</if>
<if test="partDetails.supplierId != null">#{partDetails.supplierId},</if>
<if test="partDetails.createBy != null">#{partDetails.createBy},</if>
<if test="partDetails.productionTime != null">#{partDetails.productionTime},</if>
<if test="partDetails.createTime != null">#{partDetails.createTime},</if>
<if test="partDetails.updateBy != null">#{partDetails.updateBy},</if>
<if test="partDetails.updateTime != null">#{partDetails.updateTime},</if>
<if test="partDetails.remark != null">#{partDetails.remark},</if>
<if test="partDetails.fileName != null">#{partDetails.fileName},</if>
<if test="partDetails.fileUrl != null">#{partDetails.fileUrl},</if>
<if test="partDetails.companyId != null">#{partDetails.companyId},</if>
</trim>
</foreach>
</insert>
<insert id="insertPurchasePartInfo" parameterType="com.bonus.sgzb.material.domain.PurchasePartInfo" useGeneratedKeys="true" keyProperty="taskId">
insert into purchase_part_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="taskId != null">task_id,</if>
<if test="purchaseTime != null and purchaseTime != ''">purchase_time,</if>
<if test="arrivalTime != null">arrival_time,</if>
<if test="purchaser != null">purchaser,</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>
<if test="remark != null">remark,</if>
<if test="companyId != null">company_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="taskId != null">#{taskId},</if>
<if test="purchaseTime != null and purchaseTime != ''">#{purchaseTime},</if>
<if test="arrivalTime != null">#{arrivalTime},</if>
<if test="purchaser != null">#{purchaser},</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>
<if test="remark != null">#{remark},</if>
<if test="companyId != null">#{companyId},</if>
</trim>
</insert>
2024-01-17 18:28:39 +08:00
<update id="updatePurchasePartInfo" parameterType="com.bonus.sgzb.material.domain.PurchasePartInfo">
update purchase_part_info
<trim prefix="SET" suffixOverrides=",">
<if test="purchaseTime != null and purchaseTime != ''">purchase_time = #{purchaseTime},</if>
<if test="arrivalTime != null">arrival_time = #{arrivalTime},</if>
<if test="purchaser != null">purchaser = #{purchaser},</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>
<if test="remark != null">remark = #{remark},</if>
<if test="companyId != null">company_id = #{companyId},</if>
</trim>
where task_id = #{taskId}
</update>
<update id="updatePurchasePartDetails" parameterType="com.bonus.sgzb.material.domain.PurchasePartDetails">
update purchase_part_details
<trim prefix="SET" suffixOverrides=",">
<if test="partId != null">part_id = #{partId},</if>
<if test="purchasePrice != null">purchase_price = #{purchasePrice},</if>
<if test="purchaseNum != null">purchase_num = #{purchaseNum},</if>
<if test="checkNum != null">check_num = #{checkNum},</if>
<if test="checkResult != null">check_result = #{checkResult},</if>
<if test="supplierId != null">supplier_id = #{supplierId},</if>
<if test="status != null">status = #{status},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="fileName != null">file_name = #{fileName},</if>
<if test="fileUrl != null">file_url = #{fileUrl},</if>
</trim>
2024-01-19 10:24:57 +08:00
where id = #{id}
</update>
<update id="updatePartTypeNum">
UPDATE ma_part_type
SET num = num + #{inputNum}
WHERE
pa_id = #{partId}
2024-01-17 18:28:39 +08:00
</update>
2024-01-19 10:24:57 +08:00
<select id="setlectStatusById" resultType="java.lang.Integer">
SELECT
COUNT(*)
FROM
purchase_part_details
WHERE
id=#{id}
and `status`='1'
</select>
2024-01-17 18:28:39 +08:00
<delete id="deletePartDetailsByTaskId">
delete from purchase_part_details where task_id = #{taskId}
</delete>
<delete id="deletePurchasePartInfoByTaskIds" parameterType="String">
delete from purchase_part_info where task_id in
<foreach item="taskId" collection="array" open="(" separator="," close=")">
#{taskId}
</foreach>;
delete from tm_task where task_id in
<foreach item="taskId" collection="array" open="(" separator="," close=")">
#{taskId}
</foreach>;
delete from purchase_part_details where task_id in
<foreach item="taskId" collection="array" open="(" separator="," close=")">
#{taskId}
</foreach>
</delete>
<select id="selectPurchasePartInfoList" resultType="com.bonus.sgzb.material.domain.PurchasePartInfo">
SELECT
ppi.task_id,
ppi.purchase_time,
ppi.arrival_time,
ppi.purchaser,
ppi.create_by,
ppi.create_time,
ppi.update_by,
ppi.update_time,
ppi.remark,
ppi.company_id,
dict.NAME purchasingStatus,
tk.CODE,
su.user_name purchaserName,
tk.task_status taskStatus
FROM
purchase_part_info ppi
LEFT JOIN tm_task tk ON ppi.task_id = tk.task_id
LEFT JOIN ( SELECT id, NAME FROM sys_dic WHERE p_id = 67 ) dict ON tk.task_status = dict.id
LEFT JOIN sys_user su ON ppi.purchaser = su.user_id
WHERE
task_type = 67
<if test="keyWord != null and keyWord != ''"> and tk.code like concat('%',#{keyWord},'%')</if>
<if test="purchaseTime != null and purchaseTime != ''"> and ppi.purchase_time = #{purchaseTime}</if>
<if test="arrivalTime != null and arrivalTime != ''"> and ppi.arrival_time = #{arrivalTime}</if>
<if test="purchaser != null "> and ppi.purchaser = #{purchaser}</if>
<if test="companyId != null "> and ppi.company_id = #{companyId}</if>
ORDER BY
ppi.create_time DESC
</select>
<select id="selectTypeNameByTaskId" resultType="java.lang.String">
select GROUP_CONCAT(pa_name) typeName from
(select distinct ppd.task_id, mpt1.pa_name
from purchase_part_details ppd
left join ma_part_type mpt on ppd.part_id = mpt.pa_id
left join ma_part_type mpt1 on mpt.parent_id = mpt1.pa_id
where ppd.task_id = #{taskId}
) t
GROUP BY task_id
</select>
<select id="selectPurchasePartInfoByTaskId" resultType="com.bonus.sgzb.material.domain.PurchasePartInfo">
select pci.task_id, pci.purchase_time, pci.arrival_time, pci.purchaser, pci.create_by, pci.create_time,
pci.update_by, pci.update_time, pci.remark, pci.company_id, tk.code
from purchase_part_info pci
left join tm_task tk on pci.task_id = tk.task_id
where pci.task_id = #{taskId}
</select>
<select id="selectPurchasePartDetailsList"
2024-01-19 10:24:57 +08:00
parameterType="com.bonus.sgzb.material.domain.PurchasePartDetails" resultMap="PurchasePartDetailsResult">
select pcd.id,pcd.task_id, pcd.part_id, pcd.purchase_price, pcd.purchase_num, pcd.check_num,
pcd.check_result,pcd.`status`,
CASE
WHEN pcd.`status` = 0 THEN '待验收'
WHEN pcd.`status` = 1 THEN '已验收'
WHEN pcd.`status` = 2 THEN '验收不通过'
WHEN pcd.`status` = 3 THEN '已入库'
ELSE ''
END AS statusResult,
pcd.supplier_id, msi.supplier, pcd.create_by, pcd.production_time, pcd.create_time,
pcd.file_name, pcd.file_url,pcd.update_by, pcd.update_time, pcd.remark, pcd.company_id,
mt1.pa_name machineTypeName,mt.pa_name specificationType, tk.code ,mt.pa_name typeName,
mt.unit_id unitName
2024-01-17 18:28:39 +08:00
from purchase_part_details pcd
2024-01-19 10:24:57 +08:00
left join ma_part_type mt on pcd.part_id = mt.pa_id
left join ma_part_type mt1 on mt.parent_id = mt1.pa_id
left join ma_supplier_info msi on pcd.supplier_id = msi.supplier_id
left join tm_task tk on pcd.task_id = tk.task_id
2024-01-17 18:28:39 +08:00
<where>
2024-01-19 10:24:57 +08:00
<if test="taskId != null ">and pcd.task_id = #{taskId}</if>
2024-01-17 18:28:39 +08:00
<if test="keyWord != null and keyWord != ''">and (mt.pa_name like concat('%',#{keyWord},'%')
2024-01-19 10:24:57 +08:00
or mt1.pa_name like concat('%',#{keyWord}) or msi.supplier like concat('%',#{keyWord}))
</if>
<if test="partId != null ">and pcd.part_id = #{partId}</if>
<if test="purchasePrice != null and purchasePrice != ''">and pcd.purchase_price = #{purchasePrice}</if>
<if test="purchaseNum != null ">and pcd.purchase_num = #{purchaseNum}</if>
<if test="supplierId != null ">and pcd.supplier_id = #{supplierId}</if>
<if test="productionTime != null ">and pcd.production_time = #{productionTime}</if>
<if test="companyId != null ">and pcd.company_id = #{companyId}</if>
2024-01-17 18:28:39 +08:00
</where>
</select>
<select id="selectPutInListList" resultMap="PurchasePartInfoResult">
select pci.task_id, pci.purchase_time, pci.arrival_time, pci.purchaser, pci.create_by, pci.create_time,
pci.update_by,
2024-01-19 10:24:57 +08:00
pci.update_time, pci.remark, pci.company_id ,tk.code,tk.task_status taskStatus,
CASE
tk.task_status
WHEN 69 THEN '待入库'
WHEN 70 THEN '已入库'
ELSE ''
END taskStatusResult,
su.user_name purchaserName
2024-01-17 18:28:39 +08:00
from purchase_part_info pci
left join tm_task tk on pci.task_id = tk.task_id
left join sys_user su on pci.purchaser = su.user_id
where task_type = 67 and tk.task_status in (69,70)
<if test="keyWord != null and keyWord != ''">and tk.code like concat('%',#{keyWord},'%')</if>
<if test="purchaseTime != null and purchaseTime != ''">and pci.purchase_time = #{purchaseTime}</if>
<if test="arrivalTime != null and arrivalTime != ''">and pci.arrival_time = #{arrivalTime}</if>
<if test="purchaser != null ">and pci.purchaser = #{purchaser}</if>
<if test="companyId != null ">and pci.company_id = #{companyId}</if>
order by create_time desc
</select>
<select id="selectPurchasePartDetailsStatus" resultType="java.lang.Integer">
2024-01-19 10:24:57 +08:00
select count(*) from purchase_part_details where task_id = #{taskId} and status != #{status}
</select>
<select id="getPartList" resultType="com.bonus.sgzb.material.domain.PurchasePartInfo">
SELECT
pa_id AS partId,
pa_name AS partName
FROM
`ma_part_type`
WHERE
`level` = #{level}
</select>
<select id="selectPutinDetails" resultType="com.bonus.sgzb.material.domain.PurchasePartDetails">
SELECT pcd.id,
mt.pa_id as partId,
mt1.pa_id as modelId,
mt.pa_name specificationType,
mt1.pa_name typeName,
pcd.check_num as checkNum,
pcd.`status`,
CASE
WHEN pcd.`status` = 0 THEN '待验收'
WHEN pcd.`status` = 1 THEN '待入库'
WHEN pcd.`status` = 2 THEN '验收不通过'
WHEN pcd.`status` = 3 THEN '已入库'
ELSE ''
END AS statusResult,
pcd.task_id taskId,
CASE tt.task_status
WHEN 70 THEN
tt.update_time
ELSE
''
END as inputTime,
CASE tt.task_status
WHEN 70 THEN
us.user_name
ELSE
''
END as inputBy
FROM purchase_part_details pcd
LEFT JOIN ma_part_type mt ON pcd.part_id = mt.pa_id
LEFT JOIN ma_part_type mt1 ON mt.parent_id = mt1.pa_id
LEFT JOIN tm_task tt on tt.task_id = pcd.task_id
LEFT JOIN sys_user us on us.user_id = tt.update_by
WHERE pcd.task_id = #{taskId}
<if test="keyWord != null and keyWord != ''">
and mt.pa_name like concat('%',#{keyWord},'%') or
mt1.pa_name like concat('%',#{keyWord},'%')
</if>
<if test="modelId != null and modelId != ''">
and mt1.pa_id = #{modelId}
</if>
<if test="partId != null and partId != ''">
and mt.pa_id = #{partId}
</if>
2024-01-17 18:28:39 +08:00
</select>
2024-01-16 17:11:57 +08:00
</mapper>