devicesmgt/sgzb-modules/sgzb-base/src/main/resources/mapper/largeScreen/LargeScreenMapper.xml

365 lines
16 KiB
XML

<?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.largeScreen.mapper.LargeScreenMapper">
<!--领料数据-->
<select id="getMaterialReqData" resultType="com.bonus.sgzb.largeScreen.domain.MaTypeDo">
SELECT SUM(lod.out_num) AS num,
lod.company_id AS companyId,
sd.dept_name AS companyName
FROM lease_out_details lod
LEFT JOIN sys_dept sd ON lod.company_id = sd.dept_id
WHERE lod.create_time BETWEEN CONCAT(#{nowDate}, ' 00:00:00') AND CONCAT(#{nowDate}, ' 23:59:59')
GROUP BY lod.company_id
</select>
<!--退料数据-->
<select id="getMaterialReturnData" resultType="com.bonus.sgzb.largeScreen.domain.MaTypeDo">
SELECT SUM(bcd.back_num) AS num,
bcd.company_id AS companyId,
sd.dept_name AS companyName
FROM back_check_details bcd
LEFT JOIN sys_dept sd ON bcd.company_id = sd.dept_id
WHERE bcd.create_time BETWEEN CONCAT(#{nowDate}, ' 00:00:00') AND CONCAT(#{nowDate}, ' 23:59:59')
GROUP BY bcd.company_id
</select>
<!--当月领料分析-->
<select id="getPickingAnalysisByMonth" resultType="com.bonus.sgzb.largeScreen.domain.MaTypeDo">
SELECT lod.out_num AS num,
a.typeName,
a.manage_type AS manageType
FROM lease_out_details lod
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName,mt.manage_type
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON lod.type_id = a.type_id
WHERE lod.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</select>
<!--设备分布-->
<select id="getEquipmentDisByMap" resultType="com.bonus.sgzb.largeScreen.domain.EquipmentDisVo"></select>
<!--新购验收入库分析-->
<select id="getAcceptanceStorage" resultType="java.util.Map">
/*验收*/
<if test="type == 1">
SELECT pcd.check_num AS num,
a.typeName
FROM purchase_check_info pci
LEFT JOIN purchase_check_details pcd ON pci.task_id = pcd.task_id
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON pcd.type_id = a.type_id
WHERE pci.arrival_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</if>
/*入库*/
<if test="type == 2">
SELECT iad.input_num,
a.typeName
FROM input_apply_details iad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON iad.type_id = a.type_id
WHERE iad.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59') AND iad.input_type = '1'
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</if>
</select>
<!--当月报废分析-->
<select id="getScrapAnalysisByMonth" resultType="com.bonus.sgzb.largeScreen.domain.MaterialDataVo">
/*领用*/
<if test="type == 1">
SELECT SUM(lod.out_num) AS num,
bui.unit_name AS unitName
FROM lease_out_details lod
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON lod.type_id = a.type_id
LEFT JOIN lease_apply_info lai ON lod.parent_id = lai.id
LEFT JOIN tm_task_agreement tta ON lai.task_id = tta.task_id
LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id
LEFT JOIN bm_unit_info bui ON bai.unit_id = bui.unit_id
<where>
<if test="maType!=null and maType == 1">
a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</where>
GROUP BY bai.unit_id
ORDER BY num DESC
</if>
/*报废*/
<if test="type == 2">
SELECT SUM(scrap_num) AS num,
bui.unit_name AS unitName
FROM scrap_apply_details sad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON sad.type_id = a.type_id
LEFT JOIN tm_task_agreement tta ON sad.task_id = tta.task_id
LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id
LEFT JOIN bm_unit_info bui ON bai.unit_id = bui.unit_id
WHERE sad.status = '1'
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
GROUP BY bai.unit_id
ORDER BY num DESC
</if>
</select>
<!--当月退料分析-->
<select id="getMaterialReturnByMonth" resultType="com.bonus.sgzb.largeScreen.domain.ScrapAnalysisVo">
SELECT bad.pre_num AS planNum,
bad.audit_num AS realityNum,
a.typeName
FROM back_apply_details bad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON bad.type_id = a.type_id
WHERE bad.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</select>
<!--当月维修分析-->
<select id="getMaintenanceByMonth" resultType="com.bonus.sgzb.largeScreen.domain.ScrapAnalysisVo">
SELECT rad.repair_num AS repairNum,
rad.repaired_num AS repairedNum,
rad.scrap_num AS scrapNum,
a.typeName
FROM repair_apply_details rad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON rad.type_id = a.type_id
WHERE rad.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</select>
<!--施工机具/工器具总保有量-->
<select id="getTotalOwnership" resultType="com.bonus.sgzb.largeScreen.domain.ScrapAnalysisVo">
/*在库*/
<if test="type == 1">
SELECT mt4.type_name AS typeName,
mt.num AS num
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4' AND mt.del_flag = '0'
<if test="maType!=null and maType == 1">
AND mt4.type_name = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND mt4.type_name = #{maTypeName}
</if>
</if>
/*待入库 新购/修试*/
<if test="type == 2">
SELECT pcd.purchase_num AS num,
pcd.input_num AS num2,
a.typeName AS typeName
FROM purchase_check_details pcd
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON pcd.type_id = a.type_id
WHERE pcd.status = '1'
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
UNION ALL
SELECT rid.repair_num AS num,
rid.input_num AS num2,
a.typeName AS typeName
FROM repair_input_details rid
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON rid.type_id = a.type_id
<where>
<if test="maType!=null and maType == 1">
a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</where>
</if>
/*在用*/
<if test="type == 3">
SELECT lod.out_num AS num,
'1' AS type,
a.typeName AS typeName
FROM lease_out_details lod
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON lod.type_id = a.type_id
<where>
<if test="maType!=null and maType == 1">
a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</where>
UNION ALL
SELECT bad.audit_num AS num,
'2' AS type,
a.typeName AS typeName
FROM back_apply_details bad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON bad.type_id = a.type_id
<where>
<if test="maType!=null and maType == 1">
a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</where>
</if>
/*在修*/
<if test="type == 4">
SELECT rad.repair_num AS repairNum,
rad.repaired_num AS repairedNum,
rad.scrap_num AS scrapNum,
a.typeName AS typeName
FROM repair_apply_details rad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON rad.type_id = a.type_id
<where>
<if test="maType!=null and maType == 1">
a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</where>
</if>
/*报废*/
<if test="type == 5">
SELECT sad.scrap_num AS num,
a.typeName AS typeName
FROM scrap_apply_details sad
LEFT JOIN (
SELECT mt.type_id,mt4.type_name AS typeName
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id AND mt3.`level` = '2'
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id AND mt4.`level` = '1'
WHERE mt.`level` = '4'
)a ON sad.type_id = a.type_id
WHERE sad.status = '1'
<if test="maType!=null and maType == 1">
AND a.typeName = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND a.typeName = #{maTypeName}
</if>
</if>
</select>
<!--检修预警-->
<select id="getMaintenanceWarning" resultType="com.bonus.sgzb.largeScreen.domain.MaintenanceWarningVo">
SELECT mm.ma_code AS maCode,
a.typeName,
a.typeName2 AS machineName,
mm.next_check_time
FROM ma_machine mm
LEFT JOIN (
SELECT mt.type_id,mt.type_name AS typeName,mt2.type_name AS typeName2
FROM ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id AND mt2.`level` = '3'
WHERE mt.`level` = '4'
)a ON mm.type_id = a.type_id
WHERE mm.next_check_time BETWEEN #{startDate} AND #{endDate}
</select>
</mapper>