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

865 lines
34 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">
2023-12-24 21:19:01 +08:00
SELECT lod.out_num AS num,
2023-12-16 13:01:37 +08:00
lod.company_id AS companyId,
sd.dept_name AS companyName
FROM lease_out_details lod
2023-12-24 21:19:01 +08:00
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id AND mt.`level` = '4'
LEFT JOIN sys_dept sd ON mt.company_id = sd.dept_id
2023-12-16 13:01:37 +08:00
WHERE lod.create_time BETWEEN CONCAT(#{nowDate}, ' 00:00:00') AND CONCAT(#{nowDate}, ' 23:59:59')
</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-24 20:30:41 +08:00
SELECT iad.input_num AS 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>
2024-04-02 13:57:31 +08:00
<if test="companyId!=null and companyId !=''">
AND sd.dept_id = #{companyId}
</if>
2023-12-16 13:01:37 +08:00
</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>
2024-04-02 13:57:31 +08:00
<if test="companyId!=null and companyId !=''">
AND sd.dept_id = #{companyId}
</if>
2023-12-16 13:01:37 +08:00
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>
2024-04-02 13:57:31 +08:00
<if test="companyId!=null and companyId !=''">
AND sd.dept_id = #{companyId}
</if>
2023-12-16 13:01:37 +08:00
</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>
2024-04-02 13:57:31 +08:00
<if test="companyId!=null and companyId !=''">
AND sd.dept_id = #{companyId}
</if>
2023-12-16 14:30:02 +08:00
</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>
2024-04-02 13:57:31 +08:00
<if test="companyId!=null and companyId !=''">
AND sd.dept_id = #{companyId}
</if>
2023-12-16 14:30:02 +08:00
</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>
2024-04-02 13:57:31 +08:00
<if test="companyId!=null and companyId !=''">
AND sd.dept_id = #{companyId}
</if>
2023-12-16 14:30:02 +08:00
</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,
2024-04-02 13:57:31 +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'
2024-04-02 13:57:31 +08:00
<if test="maType!=null and maType == 1">
AND sd.dept_name = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND sd.dept_name = #{maTypeName}
</if>
<if test="companyId!=null and companyId !=''">
AND sd.dept_id = #{companyId}
</if>
2023-12-16 13:01:37 +08:00
</if>
2024-04-29 16:52:51 +08:00
/*修饰待入库*/
<if test="type == 6">
SELECT rid.repair_num AS num,
rid.input_num AS num2,
mt.type_name AS typeName
FROM repair_input_details rid
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
<where>
<if test="maType!=null and maType == 1">
sd.dept_name = #{maTypeName}
</if>
<if test="maType!=null and maType == 2">
AND sd.dept_name = #{maTypeName}
</if>
<if test="companyId!=null and companyId !=''">
AND sd.dept_id = #{companyId}
</if>
</where>
</if>
2023-12-16 13:01:37 +08:00
</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>
2024-04-02 13:57:31 +08:00
<select id="getCompany" resultType="com.bonus.sgzb.largeScreen.domain.TotalOwnershipVo">
SELECT
sd2.dept_id as companyId,
sd2.dept_name as companyName
FROM
sys_dept sd
LEFT JOIN sys_dept sd2 on sd2.parent_id=sd.dept_id
WHERE
sd.del_flag='0'
and sd2.del_flag='0'
and sd.parent_id='0'
</select>
2024-04-29 14:38:15 +08:00
<select id="getMaterialReqDetailData" resultType="com.bonus.sgzb.largeScreen.domain.MaterialDetailVo">
SELECT
lod.create_time AS materialTime,
mt2.type_name AS typeName,
mt2.type_id AS typeId,
mt.type_name AS typeModelName,
lod.out_num AS num,
lai.`code` AS materialCode,
bui.unit_name AS unitName,
bai.unit_id AS unitId,
bpl.lot_id AS projectId,
su.user_name AS userName,
bpl.lot_name AS projectName,
sd.dept_name AS companyName
FROM
lease_out_details lod
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id
AND mt.`level` = '4'
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_type_keeper mtk ON mt.type_id = mtk.type_id
LEFT JOIN sys_user su ON mtk.user_id = su.user_id
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_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
LEFT JOIN bm_project_lot bpl ON bai.project_id = bpl.lot_id
WHERE
DATE( lod.create_time ) = CURDATE()
<if test="maTypeName!=null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>
<if test="materialCode!=null and materialCode != ''">
AND lai.`code` LIKE CONCAT('%',#{materialCode},'%')
</if>
<if test="unitId!=null and unitId != ''">
AND bai.unit_id = #{unitId}
</if>
<if test="projectId!=null and projectId != ''">
AND bai.project_id = #{projectId}
</if>
<if test="typeId!=null and typeId != ''">
AND mt2.type_id = #{typeId}
</if>
</select>
<select id="getMaterialReturnDetailData" resultType="com.bonus.sgzb.largeScreen.domain.MaterialDetailVo">
SELECT
bad.create_time AS materialTime,
mt2.type_name AS typeName,
mt2.type_id AS typeId,
mt.type_name AS typeModelName,
bad.audit_num AS num,
ba.`code` AS materialCode,
bui.unit_name AS unitName,
bai.unit_id AS unitId,
bpl.lot_id AS projectId,
bpl.lot_name AS projectName,
tt.task_status AS auditStatus,
CASE
tt.task_status
WHEN '37' THEN
'待退料审核'
WHEN '38' THEN
'退料审核通过'
WHEN '39' THEN
'退料核查中'
WHEN '40' THEN
'退料完成' ELSE ''
END AS statusName,
sd.dept_name AS companyName
FROM
back_apply_details bad
LEFT JOIN ma_type mt ON bad.type_id = mt.type_id
AND mt.`level` = '4'
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
LEFT JOIN back_apply_info ba ON bad.parent_id = ba.id
LEFT JOIN tm_task tt ON ba.task_id = tt.task_id
LEFT JOIN tm_task_agreement tta ON ba.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
LEFT JOIN bm_project_lot bpl ON bai.project_id = bpl.lot_id
WHERE
DATE( bad.create_time ) = CURDATE()
<if test="maTypeName!=null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>
<if test="materialCode!=null and materialCode != ''">
AND ba.`code` LIKE CONCAT('%',#{materialCode},'%')
</if>
<if test="unitId!=null and unitId != ''">
AND bai.unit_id = #{unitId}
</if>
<if test="projectId!=null and projectId != ''">
AND bai.project_id = #{projectId}
</if>
<if test="typeId!=null and typeId != ''">
AND mt2.type_id = #{typeId}
</if>
</select>
<select id="getTotalOwnerDetailsShip" resultType="com.bonus.sgzb.largeScreen.domain.TotalOwnerVo">
SELECT
mt2.type_name AS typeName,
mt2.type_id AS typeId,
mt.type_name AS typeModelName,
mt.unit_name AS unitName,
IFNULL( mt.num, 0 ) AS stockNum,
IFNULL( subquery1.usNum, 0 ) AS useNum,
IFNULL( subquery2.repairNum, 0 ) AS inRepairNum,
IFNULL( subquery3.repairInputNum, 0 ) AS inputNum,
IFNULL( subquery4.inputNum, 0 ) AS purchaseNum,
IFNULL( mt.num, 0 ) + IFNULL( subquery1.usNum, 0 ) + IFNULL( subquery2.repairNum, 0 ) + IFNULL( subquery3.repairInputNum, 0 ) AS totalOwnershipNum,
sd.dept_name AS companyName
FROM
ma_type mt
LEFT JOIN (
SELECT
subquery1.type_id,
subquery1.typeName,
subquery1.typeModelName,
IFNULL( subquery1.outNum, 0 ) AS outNum,
IFNULL( subquery2.backNum, 0 ) AS backNum,
CASE
WHEN IFNULL( subquery1.outNum, 0 ) - IFNULL( subquery2.backNum, 0 ) > 0 THEN
IFNULL( subquery1.outNum, 0 ) - IFNULL( subquery2.backNum, 0 ) ELSE 0
END AS usNum
FROM
(
SELECT
mt.type_id,
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
SUM(IFNULL( lod.out_num, 0 )) AS outNum
FROM
lease_out_details lod
LEFT JOIN ma_type mt ON mt.type_id = lod.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
GROUP BY
mt.type_id
) AS subquery1
LEFT JOIN (
SELECT
mt.type_id,
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
SUM(IFNULL( bcd.back_num, 0 )) backNum
FROM
back_check_details bcd
LEFT JOIN ma_type mt ON mt.type_id = bcd.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id
GROUP BY
mt.type_id
) AS subquery2 ON subquery1.type_id = subquery2.type_id
) AS subquery1 ON mt.type_id = subquery1.type_id
LEFT JOIN (
SELECT
mt.type_id,
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
SUM(
IFNULL( rad.repair_num, 0 ) - IFNULL( rad.repaired_num, 0 ) - IFNULL( rad.scrap_num, 0 )) AS repairNum
FROM
repair_apply_details rad
LEFT JOIN ma_type mt ON mt.type_id = rad.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
WHERE
IFNULL( rad.repair_num, 0 ) - IFNULL( rad.repaired_num, 0 ) - IFNULL( rad.scrap_num, 0 ) > 0
GROUP BY
mt.type_id
) AS subquery2 ON subquery2.type_id = mt.type_id
LEFT JOIN (
SELECT
mt.type_id,
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
SUM(
IFNULL( rid.repair_num, 0 ) - IFNULL( rid.input_num, 0 )) AS repairInputNum
FROM
repair_input_details rid
LEFT JOIN ma_type mt ON mt.type_id = rid.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
WHERE
IFNULL( rid.repair_num, 0 ) - IFNULL( rid.input_num, 0 ) > 0
GROUP BY
mt.type_id
) AS subquery3 ON subquery3.type_id = mt.type_id
LEFT JOIN (
SELECT
mt.type_id,
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
SUM(
IFNULL( pcd.check_num, 0 ) - IFNULL( pcd.input_num, 0 )) AS inputNum
FROM
purchase_check_details pcd
LEFT JOIN ma_type mt ON mt.type_id = pcd.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
WHERE
IFNULL( pcd.check_num, 0 ) - IFNULL( pcd.input_num, 0 ) > 0
GROUP BY
mt.type_id
) AS subquery4 ON subquery4.type_id = mt.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
WHERE
mt.`level` = 4
AND mt.del_flag = '0'
<if test="maTypeName!=null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>
<if test="typeId!=null and typeId != ''">
AND mt2.type_id = #{typeId}
</if>
</select>
<select id="getAcceptanceDetailStorage" resultType="com.bonus.sgzb.largeScreen.domain.StorageDetailVo">
SELECT
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
mt2.type_id AS typeId,
IFNULL( subquery1.purchaseNum, 0 ) AS purchaseNum,
IFNULL( subquery1.checkNum, 0 ) AS checkNum,
IFNULL( subquery2.inputNum, 0 ) AS inputNum,
sd.dept_name AS companyName
FROM
ma_type mt
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
LEFT JOIN (
SELECT
mt.type_id,
SUM(IFNULL( pcd.purchase_num, 0 )) AS purchaseNum,
SUM(IFNULL( pcd.check_num, 0 )) AS checkNum,
pci.arrival_time AS arrivalTime
FROM
purchase_check_details pcd
LEFT JOIN ma_type mt ON mt.type_id = pcd.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN purchase_check_info pci ON pci.task_id = pcd.task_id
where
1 = 1
<if test="type == 1 and startDate != null ">
AND DATE_FORMAT(pci.arrival_time, '%Y-%m') = #{startDate}
</if>
GROUP BY
mt.type_id
) AS subquery1 ON subquery1.type_id = mt.type_id
LEFT JOIN (
SELECT
mt.type_id,
SUM(IFNULL( iad.input_num, 0 )) AS inputNum,
iad.create_time AS inputTime
FROM
input_apply_details iad
LEFT JOIN ma_type mt ON mt.type_id = iad.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
where
iad.input_type = '1'
<if test="type == 2 and startDate != null ">
AND DATE_FORMAT(iad.create_time, '%Y-%m') = #{startDate}
</if>
GROUP BY
mt.type_id
) AS subquery2 ON subquery2.type_id = mt.type_id
WHERE
mt.`level` = 4
AND mt.del_flag = '0'
<if test="maTypeName!=null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>
<if test="typeId!=null and typeId != ''">
AND mt2.type_id = #{typeId}
</if>
</select>
<select id="getScrapAnalysisDetailByMonth" resultType="com.bonus.sgzb.largeScreen.domain.ScrapVo">
SELECT
tt.`code` AS scrapCode,
sad.scrap_source AS scrapSource,
CASE
sad.scrap_source
WHEN '1' THEN
'退料报废'
WHEN '2' THEN
'维修报废'
WHEN '3' THEN
'盘点报废' ELSE ''
END AS scrapSourceName,
sad.create_time AS scrapTime,
mt2.type_name AS typeName,
mt2.type_id AS typeId,
mt.type_name AS typeModelName,
scrap_num AS scrapNum,
sad.`status` AS scrapStatus,
CASE
sad.`status`
WHEN '0' THEN
'进行中'
WHEN '1' THEN
'已审核'
WHEN '2' THEN
'驳回'
WHEN '3' THEN
'待处置'
WHEN '4' THEN
'已处置' ELSE ''
END AS statusName,
sd.dept_name AS companyName
FROM
scrap_apply_details sad
LEFT JOIN ma_type mt ON sad.type_id = mt.type_id
AND mt.`level` = '4'
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN tm_task tt ON tt.task_id = sad.task_id
WHERE
sad.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00' ) AND CONCAT(#{endDate}, ' 23:59:59' )
<if test="maTypeName != null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>
<if test="scrapCode!=null and scrapCode != ''">
AND tt.`code` LIKE CONCAT('%',#{scrapCode},'%')
</if>
<if test="scrapSource!=null and scrapSource != ''">
AND sad.scrap_source = #{scrapSource}
</if>
<if test="scrapStatus!=null and scrapStatus != ''">
AND sad.`status` = #{scrapStatus}
</if>
<if test="typeId!=null and typeId != ''">
AND mt2.type_id = #{typeId}
</if>
</select>
<select id="getPickingAnalysisDetailByMonth"
resultType="com.bonus.sgzb.largeScreen.domain.MaterialDetailVo">
SELECT
lai.`code` AS materialCode,
bai.unit_id AS unitId,
bui.unit_name AS unitName,
bpl.lot_id AS projectId,
bpl.lot_name AS projectName,
lod.out_num AS num,
lod.create_time AS materialTime,
tt.task_status AS auditStatus,
CASE
tt.task_status
WHEN '30' THEN
'待分公司审核'
WHEN '31' THEN
'待机具分公司审核'
WHEN '32' THEN
'待施工部审核'
WHEN '33' THEN
'待出库'
WHEN '34' THEN
'出库进行中'
WHEN '35' THEN
'完成' ELSE ''
END AS statusName,
sd.dept_name AS companyName,
mt.manage_type AS manageType
FROM
lease_out_details lod
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
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 tm_task tt ON lai.task_id = tt.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
LEFT JOIN bm_project_lot bpl ON bai.project_id = bpl.lot_id
WHERE
bpl.del_flag = '0' and
lod.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maTypeName != null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>
<if test="materialCode != null and materialCode != ''">
AND lai.`code` LIKE CONCAT('%',#{materialCode},'%')
</if>
<if test="unitId != null and unitId != ''">
AND bai.unit_id = #{unitId}
</if>
<if test="projectId != null and projectId != ''">
AND bai.project_id = #{projectId}
</if>
GROUP BY
materialCode
</select>
<select id="getMaterialReturnDetailByMonth"
resultType="com.bonus.sgzb.largeScreen.domain.MaterialDetailVo">
SELECT
ba.`code` AS materialCode,
bai.unit_id AS unitId,
bui.unit_name AS unitName,
bpl.lot_id AS projectId,
bpl.lot_name AS projectName,
bad.pre_num AS num,
bad.audit_num AS realityNum,
bad.create_time AS materialTime,
tt.task_status AS auditStatus,
CASE
tt.task_status
WHEN '37' THEN
'待退料审核'
WHEN '38' THEN
'退料审核通过'
WHEN '39' THEN
'退料核查中'
WHEN '40' THEN
'退料完成' ELSE ''
END AS statusName,
sd.dept_name AS companyName
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 sd.dept_id = mt.company_id
LEFT JOIN back_apply_info ba ON bad.parent_id = ba.id
LEFT JOIN tm_task tt ON ba.task_id = tt.task_id
LEFT JOIN tm_task_agreement tta ON ba.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
LEFT JOIN bm_project_lot bpl ON bai.project_id = bpl.lot_id
WHERE
bad.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maTypeName != null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>
<if test="materialCode != null and materialCode != ''">
AND lai.`code` LIKE CONCAT('%',#{materialCode},'%')
</if>
<if test="unitId != null and unitId != ''">
AND bai.unit_id = #{unitId}
</if>
<if test="projectId != null and projectId != ''">
AND bai.project_id = #{projectId}
</if>
GROUP BY
materialCode
</select>
<select id="getRepairList" resultType="com.bonus.sgzb.largeScreen.domain.AccessVo">
SELECT
CASE
rar.repair_type
WHEN 1 THEN
mpt2.pa_name ELSE rar.part_name
END partName,
CASE
rar.repair_type
WHEN 1 THEN
SUM( rpd.part_num ) ELSE SUM( rar.part_num )
END partNum,
sd.dept_name AS companyName
FROM
repair_apply_record rar
LEFT JOIN ma_type mt ON rar.type_id = mt.type_id
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id
LEFT JOIN repair_part_details rpd ON rpd.task_id = rar.task_id
AND rpd.type_id = rar.type_id
AND rar.repair_type = '1'
LEFT JOIN ma_part_type mpt ON mpt.pa_id = rpd.part_id
LEFT JOIN ma_part_type mpt2 ON mpt2.pa_id = mpt.parent_id
WHERE
rar.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maTypeName != null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>
GROUP BY
partName
ORDER BY
partNum DESC
</select>
<select id="getMaintenanceDetailByMonth" resultType="com.bonus.sgzb.largeScreen.domain.RepairDetailVo">
SELECT
tt.CODE AS repairCode,
bai2.unit_id AS unitId,
bui.unit_name AS unitName,
bpi.lot_id AS projectId,
bpi.lot_name AS projectName,
su.user_name AS createBy,
tt.create_time AS createTime,
bai.CODE AS materialCode,
sd.NAME AS statusName,
tt.task_status AS repairStatus,
tt.company_id AS companyId,
sdd.dept_name AS companyName,
GROUP_CONCAT( DISTINCT mt2.type_name ) AS typeName
FROM
repair_apply_details rd
LEFT JOIN ma_type mt ON rd.type_id = mt.type_id
LEFT JOIN sys_dept sdd ON sdd.dept_id = mt.company_id
LEFT JOIN ma_type mt2 ON mt.parent_id = mt2.type_id
LEFT JOIN tm_task tt ON rd.task_id = tt.task_id
LEFT JOIN back_apply_info bai ON rd.back_id = bai.id
LEFT JOIN tm_task_agreement tta ON bai.task_id = tta.task_id
LEFT JOIN bm_agreement_info bai2 ON tta.agreement_id = bai2.agreement_id
LEFT JOIN bm_unit_info bui ON bai2.unit_id = bui.unit_id
LEFT JOIN bm_project_lot bpi ON bai2.project_id = bpi.lot_id
AND bpi.STATUS = '0'
AND bpi.del_flag = '0'
LEFT JOIN sys_user su ON rd.create_by = su.user_id
LEFT JOIN sys_dic sd ON sd.id = tt.task_status
WHERE
tt.create_time BETWEEN CONCAT(#{startDate}, ' 00:00:00') AND CONCAT(#{endDate}, ' 23:59:59')
<if test="maTypeName != null and maTypeName != ''">
AND sdd.dept_name = #{maTypeName}
</if>
<if test="repairCode != null and repairCode != ''">
AND tt.CODE LIKE CONCAT('%',#{repairCode},'%')
</if>
<if test="unitId != null and unitId != ''">
AND bai2.unit_id = #{unitId}
</if>
<if test="projectId != null and projectId != ''">
AND bpi.lot_id = #{projectId}
</if>
GROUP BY
bui.unit_name,
bpi.lot_name,
bai.CODE,
su.user_name
ORDER BY
tt.create_time DESC
</select>
2023-12-11 15:47:13 +08:00
</mapper>