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

285 lines
12 KiB
XML
Raw Normal View History

2023-12-11 15:47:13 +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.largeScreen.mapper.LargeScreenMapper">
2023-12-16 13:01:37 +08:00
<!--领料数据-->
<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">
2023-12-24 00:52:17 +08:00
SELECT bad.audit_num AS num,
mt.company_id AS companyId,
2023-12-16 13:01:37 +08:00
sd.dept_name AS companyName
2023-12-24 00:52:17 +08:00
FROM back_apply_details bad
LEFT JOIN ma_type mt ON bad.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON mt.company_id = sd.dept_id
WHERE bad.create_time BETWEEN CONCAT(#{nowDate}, ' 00:00:00') AND CONCAT(#{nowDate}, ' 23:59:59')
2023-12-16 13:01:37 +08:00
</select>
<!--当月领料分析-->
<select id="getPickingAnalysisByMonth" resultType="com.bonus.sgzb.largeScreen.domain.MaTypeDo">
SELECT lod.out_num AS num,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName,
mt.manage_type AS manageType
2023-12-16 13:01:37 +08:00
FROM lease_out_details lod
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
WHERE lod.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</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,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 13:01:37 +08:00
FROM purchase_check_info pci
LEFT JOIN purchase_check_details pcd ON pci.task_id = pcd.task_id
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
WHERE pci.arrival_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
</if>
/*入库*/
<if test="type == 2">
2023-12-17 16:10:04 +08:00
SELECT iad.input_num,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-17 16:10:04 +08:00
FROM input_apply_details iad
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON iad.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-17 16:10:04 +08:00
WHERE iad.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59') AND iad.input_type = '1'
2023-12-16 13:01:37 +08:00
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</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
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
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">
2023-12-23 23:17:12 +08:00
sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</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
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON sad.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
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">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</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,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 13:01:37 +08:00
FROM back_apply_details bad
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON bad.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
WHERE bad.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</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,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 13:01:37 +08:00
FROM repair_apply_details rad
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON rad.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
WHERE rad.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
</select>
<!--施工机具/工器具总保有量-->
<select id="getTotalOwnership" resultType="com.bonus.sgzb.largeScreen.domain.ScrapAnalysisVo">
/*在库*/
<if test="type == 1">
2023-12-23 23:17:12 +08:00
SELECT mt.type_name AS typeName,
2023-12-16 13:01:37 +08:00
mt.num AS num
FROM ma_type mt
2023-12-23 23:17:12 +08:00
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
WHERE mt.`level` = '4' AND mt.del_flag = '0'
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
</if>
/*待入库 新购/修试*/
<if test="type == 2">
SELECT pcd.purchase_num AS num,
pcd.input_num AS num2,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 13:01:37 +08:00
FROM purchase_check_details pcd
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
WHERE pcd.status = '1'
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
UNION ALL
SELECT rid.repair_num AS num,
rid.input_num AS num2,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 13:01:37 +08:00
FROM repair_input_details rid
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON rid.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 13:01:37 +08:00
<where>
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 13:01:37 +08:00
</if>
</where>
</if>
/*在用*/
<if test="type == 3">
2023-12-16 14:30:02 +08:00
SELECT lod.out_num AS num,
'1' AS type,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 14:30:02 +08:00
FROM lease_out_details lod
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 14:30:02 +08:00
<where>
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
sd.dept_name = #{maTypeName}
2023-12-16 14:30:02 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 14:30:02 +08:00
</if>
</where>
UNION ALL
SELECT bad.audit_num AS num,
'2' AS type,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 14:30:02 +08:00
FROM back_apply_details bad
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON bad.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 14:30:02 +08:00
<where>
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
sd.dept_name = #{maTypeName}
2023-12-16 14:30:02 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 14:30:02 +08:00
</if>
</where>
2023-12-16 13:01:37 +08:00
</if>
/*在修*/
<if test="type == 4">
2023-12-16 14:30:02 +08:00
SELECT rad.repair_num AS repairNum,
rad.repaired_num AS repairedNum,
rad.scrap_num AS scrapNum,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 14:30:02 +08:00
FROM repair_apply_details rad
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON rad.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 14:30:02 +08:00
<where>
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
sd.dept_name = #{maTypeName}
2023-12-16 14:30:02 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 14:30:02 +08:00
</if>
</where>
2023-12-16 13:01:37 +08:00
</if>
/*报废*/
<if test="type == 5">
2023-12-16 14:30:02 +08:00
SELECT sad.scrap_num AS num,
2023-12-23 23:17:12 +08:00
mt.type_name AS typeName
2023-12-16 14:30:02 +08:00
FROM scrap_apply_details sad
2023-12-23 23:17:12 +08:00
LEFT JOIN ma_type mt ON sad.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
2023-12-16 14:30:02 +08:00
WHERE sad.status = '1'
<if test="maType!=null and maType == 1">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 14:30:02 +08:00
</if>
<if test="maType!=null and maType == 2">
2023-12-23 23:17:12 +08:00
AND sd.dept_name = #{maTypeName}
2023-12-16 14:30:02 +08:00
</if>
2023-12-16 13:01:37 +08:00
</if>
</select>
2023-12-21 13:26:41 +08:00
<!--检修预警-->
<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>
2023-12-11 15:47:13 +08:00
</mapper>