综合查询增加库官员和搜索条件

This commit is contained in:
liang.chao 2024-11-19 17:21:35 +08:00
parent d852a55aab
commit 0a371a8cfc
4 changed files with 226 additions and 108 deletions

View File

@ -207,5 +207,14 @@ public class StorageStatus {
private String maType;
private String maTypeName;
/**
* 关联库管员名字
*/
@Excel(name = "库管员")
private String typeKeepName;
/**
* 库管员id
*/
private Integer userId;
}

View File

@ -5,109 +5,162 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.bonus.sgzb.material.mapper.StorageStatusMapper">
<select id="getStorageStatusList" resultType="com.bonus.sgzb.material.domain.StorageStatus">
SELECT mt2.type_name as typeName,
mt.type_name as typeModelName,
mt.unit_name as unit,
CASE mt.manage_type
WHEN 0 THEN
IFNULL(subquery0.num, 0)
ELSE
IFNULL(mt.num, 0)
END as num,
IFNULL(subquery1.usNum, 0) as usNum,
IFNULL(subquery2.repairNum, 0) as repairNum,
IFNULL(subquery3.repairInputNum, 0) as repairInputNum,
IFNULL(subquery4.inputNum, 0) as inputNum,
CASE mt.manage_type
WHEN 0 THEN
IFNULL(subquery0.num, 0)+ IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0) + IFNULL(subquery3.repairInputNum, 0)
ELSE
IFNULL(mt.num, 0)+ IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0) + IFNULL(subquery3.repairInputNum, 0)
END as allNum,
CASE mt.manage_type
WHEN 0 THEN
'否'
ELSE
'是'
END manageType
SELECT
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
mt.type_id AS typeId,
mt.unit_name AS unit,
CASE
mt.manage_type
WHEN 0 THEN
IFNULL( subquery0.num, 0 ) ELSE IFNULL( mt.num, 0 )
END AS num,
IFNULL( subquery1.usNum, 0 ) AS usNum,
IFNULL( subquery2.repairNum, 0 ) AS repairNum,
IFNULL( subquery3.repairInputNum, 0 ) AS repairInputNum,
IFNULL( subquery4.inputNum, 0 ) AS inputNum,
CASE
mt.manage_type
WHEN 0 THEN
IFNULL( subquery0.num, 0 )+ IFNULL( subquery1.usNum, 0 ) + IFNULL( subquery2.repairNum, 0 ) + IFNULL( subquery3.repairInputNum, 0 ) ELSE IFNULL( mt.num, 0 )+ IFNULL( subquery1.usNum, 0 ) + IFNULL( subquery2.repairNum, 0 ) + IFNULL( subquery3.repairInputNum, 0 )
END AS allNum,
CASE
mt.manage_type
WHEN 0 THEN
'否' ELSE '是'
END manageType,
subquery5.typeKeepName
FROM
ma_type mt
LEFT JOIN (
SELECT
mt.type_id,
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
count( mm.ma_id ) num
FROM
ma_machine mm
LEFT JOIN ma_type mt ON mt.type_id = mm.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
WHERE
mm.ma_code IS NOT NULL
AND mm.ma_status IN ( 15 )
GROUP BY
mt.type_id
) AS subquery0 ON subquery0.type_id = mt.type_id
LEFT JOIN (
SELECT
subquery1.type_id,
subquery1.typeName,
subquery1.typeModelName,
IFNULL( subquery1.outNum, 0 ) AS outNum,
IFNULL( subquery2.backNum, 0 ) AS backNum,
CASE
FROM ma_type mt
LEFT JOIN (SELECT mt.type_id,
mt2.type_name AS typeName,
mt.type_name AS typeModelName,
count(mm.ma_id) num
FROM ma_machine mm
LEFT JOIN ma_type mt ON mt.type_id = mm.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
WHERE mm.ma_code is not null and mm.ma_status in (15)
GROUP BY mt.type_id) AS subquery0 ON subquery0.type_id = mt.type_id
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
LEFT JOIN tm_task tt on tt.task_id=pcd.task_id
WHERE IFNULL(pcd.check_num, 0) - IFNULL(pcd.input_num, 0) > 0
and tt.task_status !=107 and tt.task_status !=106
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'
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
LEFT JOIN tm_task tt ON tt.task_id = pcd.task_id
WHERE
IFNULL( pcd.check_num, 0 ) - IFNULL( pcd.input_num, 0 ) > 0
AND tt.task_status != 107
AND tt.task_status != 106
GROUP BY
mt.type_id
) AS subquery4 ON subquery4.type_id = mt.type_id
LEFT JOIN (
SELECT
mkt.type_id,
GROUP_CONCAT( su.nick_name SEPARATOR ', ' ) AS typeKeepName,
GROUP_CONCAT( su.user_id SEPARATOR ', ' ) AS userIds
FROM
ma_type_keeper mkt
LEFT JOIN sys_user su ON mkt.user_id = su.user_id
GROUP BY
mkt.type_id
) AS subquery5 ON subquery5.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="userId != null and userId != ''">
AND LOCATE(#{userId}, subquery5.userIds) > 0
</if>
<if test="maTypeName!=null and maTypeName != ''">
AND sd.dept_name = #{maTypeName}
</if>

View File

@ -37,6 +37,15 @@ export function getProData(params = {}){
})
}
// 获取 工程 列表
export function getTypeKeeper(params = {}){
return request({
url: '/base/maWarehouseKeeper/getMaUserList',
method: 'get',
data: params
})
}

View File

@ -68,6 +68,24 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="库管员" prop="userId">
<el-select
v-model="queryParams.userId"
filterable
clearable
@change="unitChange"
style="width: 240px"
placeholder="请选择"
>
<el-option
v-for="item in keepIdList"
:key="item.userId"
:label="item.userName"
:value="item.userId"
>
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="关键字" prop="keyWord">
<el-input
v-model="queryParams.keyWord"
@ -184,6 +202,12 @@
prop="manageType"
:show-overflow-tooltip="true"
/>
<el-table-column
label="库管员"
align="center"
prop="typeKeepName"
:show-overflow-tooltip="true"
/>
</el-table>
<pagination
@ -199,10 +223,10 @@
<script>
import {
statusList,
exportList,
getUnitData,
getProData,
statusList,
exportList,
getUnitData,
getProData, getTypeKeeper,
} from '@/api/stquery/deviceStatusRecord'
export default {
@ -242,11 +266,13 @@ export default {
maType: '1', // 1 2
},
unitList: [], //
keepIdList: [], //id
proList: [], //
}
},
created() {
this.getList()
this.getKeepIdList()
/* this.getUnitList();
this.getProList(); */
},
@ -261,6 +287,7 @@ export default {
keyWord:this.queryParams.keyWord,
agreementCode:this.queryParams.agreementCode, */
typeName: this.queryParams.typeName,
userId: this.queryParams.userId,
typeModelName: this.queryParams.typeModelName,
/* startTime:this.queryParams.time && this.queryParams.time[0],
endTime:this.queryParams.time && this.queryParams.time[1], */
@ -275,7 +302,16 @@ export default {
this.leaseAuditList = res.data.rows
this.total = res.data.total
},
//
async getKeepIdList() {
this.loading = true
const params = {
}
const res = await getTypeKeeper(params)
console.log('机具状态', res)
this.loading = false
this.keepIdList = res.data
},
//
async getUnitList() {
const params = {
@ -294,6 +330,14 @@ export default {
this.proList = res.data
console.log('GetProData ======================', res)
},
//
async getTypeKeeper() {
const params = {
}
const res = await getTypeKeeper(params)
this.keepIdList = res.data
console.log('GetProData ======================', res)
},
//
reset() {
@ -328,6 +372,9 @@ export default {
`综合查询_机具仓储状态_${new Date().getTime()}.xlsx`,
)
},
unitChange(val) {
this.getTypeKeeper(val)
},
//
/* mergeRow ({ row, column, rowIndex, columnIndex}) {