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

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 maType;
private String maTypeName; 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"> <mapper namespace="com.bonus.sgzb.material.mapper.StorageStatusMapper">
<select id="getStorageStatusList" resultType="com.bonus.sgzb.material.domain.StorageStatus"> <select id="getStorageStatusList" resultType="com.bonus.sgzb.material.domain.StorageStatus">
SELECT mt2.type_name as typeName, SELECT
mt.type_name as typeModelName, mt2.type_name AS typeName,
mt.unit_name as unit, mt.type_name AS typeModelName,
CASE mt.manage_type mt.type_id AS typeId,
WHEN 0 THEN mt.unit_name AS unit,
IFNULL(subquery0.num, 0) CASE
ELSE mt.manage_type
IFNULL(mt.num, 0) WHEN 0 THEN
END as num, IFNULL( subquery0.num, 0 ) ELSE IFNULL( mt.num, 0 )
IFNULL(subquery1.usNum, 0) as usNum, END AS num,
IFNULL(subquery2.repairNum, 0) as repairNum, IFNULL( subquery1.usNum, 0 ) AS usNum,
IFNULL(subquery3.repairInputNum, 0) as repairInputNum, IFNULL( subquery2.repairNum, 0 ) AS repairNum,
IFNULL(subquery4.inputNum, 0) as inputNum, IFNULL( subquery3.repairInputNum, 0 ) AS repairInputNum,
CASE mt.manage_type IFNULL( subquery4.inputNum, 0 ) AS inputNum,
WHEN 0 THEN CASE
IFNULL(subquery0.num, 0)+ IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0) + IFNULL(subquery3.repairInputNum, 0) mt.manage_type
ELSE WHEN 0 THEN
IFNULL(mt.num, 0)+ IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0) + IFNULL(subquery3.repairInputNum, 0) 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, END AS allNum,
CASE mt.manage_type CASE
WHEN 0 THEN mt.manage_type
'否' WHEN 0 THEN
ELSE '否' ELSE '是'
'是' END manageType,
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 WHEN IFNULL( subquery1.outNum, 0 ) - IFNULL( subquery2.backNum, 0 ) > 0 THEN
LEFT JOIN (SELECT mt.type_id, IFNULL( subquery1.outNum, 0 ) - IFNULL( subquery2.backNum, 0 ) ELSE 0
mt2.type_name AS typeName, END AS usNum
mt.type_name AS typeModelName, FROM
count(mm.ma_id) num (
FROM ma_machine mm SELECT
LEFT JOIN ma_type mt ON mt.type_id = mm.type_id mt.type_id,
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id mt2.type_name AS typeName,
WHERE mm.ma_code is not null and mm.ma_status in (15) mt.type_name AS typeModelName,
GROUP BY mt.type_id) AS subquery0 ON subquery0.type_id = mt.type_id SUM(
LEFT JOIN (SELECT subquery1.type_id, IFNULL( lod.out_num, 0 )) AS outNum
subquery1.typeName, FROM
subquery1.typeModelName, lease_out_details lod
IFNULL(subquery1.outNum, 0) AS outNum, LEFT JOIN ma_type mt ON mt.type_id = lod.type_id
IFNULL(subquery2.backNum, 0) AS backNum, LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
CASE GROUP BY
mt.type_id
WHEN IFNULL(subquery1.outNum, 0) - IFNULL(subquery2.backNum, 0) > 0 THEN ) AS subquery1
IFNULL(subquery1.outNum, 0) - IFNULL(subquery2.backNum, 0) LEFT JOIN (
ELSE 0 SELECT
END AS usNum mt.type_id,
FROM (SELECT mt.type_id, mt2.type_name AS typeName,
mt2.type_name AS typeName, mt.type_name AS typeModelName,
mt.type_name AS typeModelName, SUM(
SUM(IFNULL(lod.out_num, 0)) AS outNum IFNULL( bcd.back_num, 0 )) backNum
FROM lease_out_details lod FROM
LEFT JOIN ma_type mt ON mt.type_id = lod.type_id back_check_details bcd
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_type mt ON mt.type_id = bcd.type_id
GROUP BY mt.type_id) AS subquery1 LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN (SELECT mt.type_id, LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id
mt2.type_name AS typeName, GROUP BY
mt.type_name AS typeModelName, mt.type_id
SUM(IFNULL(bcd.back_num, 0)) backNum ) AS subquery2 ON subquery1.type_id = subquery2.type_id
FROM back_check_details bcd ) AS subquery1 ON mt.type_id = subquery1.type_id
LEFT JOIN ma_type mt ON mt.type_id = bcd.type_id LEFT JOIN (
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id SELECT
LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id mt.type_id,
GROUP BY mt.type_id) AS subquery2 mt2.type_name AS typeName,
ON subquery1.type_id = subquery2.type_id) AS subquery1 mt.type_name AS typeModelName,
ON mt.type_id = subquery1.type_id SUM(
LEFT JOIN (SELECT mt.type_id, IFNULL( rad.repair_num, 0 ) - IFNULL( rad.repaired_num, 0 ) - IFNULL( rad.scrap_num, 0 )) AS repairNum
mt2.type_name AS typeName, FROM
mt.type_name AS typeModelName, repair_apply_details rad
SUM( LEFT JOIN ma_type mt ON mt.type_id = rad.type_id
IFNULL(rad.repair_num, 0) - IFNULL(rad.repaired_num, 0) - LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
IFNULL(rad.scrap_num, 0)) AS repairNum WHERE
FROM repair_apply_details rad IFNULL( rad.repair_num, 0 ) - IFNULL( rad.repaired_num, 0 ) - IFNULL( rad.scrap_num, 0 ) > 0
LEFT JOIN ma_type mt ON mt.type_id = rad.type_id GROUP BY
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id mt.type_id
WHERE IFNULL(rad.repair_num, 0) - IFNULL(rad.repaired_num, 0) - IFNULL(rad.scrap_num, 0) > 0 ) AS subquery2 ON subquery2.type_id = mt.type_id
GROUP BY mt.type_id) AS subquery2 ON subquery2.type_id = mt.type_id LEFT JOIN (
LEFT JOIN (SELECT mt.type_id, SELECT
mt2.type_name AS typeName, mt.type_id,
mt.type_name AS typeModelName, mt2.type_name AS typeName,
SUM( mt.type_name AS typeModelName,
IFNULL(rid.repair_num, 0) - IFNULL(rid.input_num, 0)) AS repairInputNum SUM(
FROM repair_input_details rid IFNULL( rid.repair_num, 0 ) - IFNULL( rid.input_num, 0 )) AS repairInputNum
LEFT JOIN ma_type mt ON mt.type_id = rid.type_id FROM
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id repair_input_details rid
WHERE IFNULL(rid.repair_num, 0) - IFNULL(rid.input_num, 0) > 0 LEFT JOIN ma_type mt ON mt.type_id = rid.type_id
GROUP BY mt.type_id) AS subquery3 ON subquery3.type_id = mt.type_id LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN (SELECT mt.type_id, WHERE
mt2.type_name AS typeName, IFNULL( rid.repair_num, 0 ) - IFNULL( rid.input_num, 0 ) > 0
mt.type_name AS typeModelName, GROUP BY
SUM( mt.type_id
IFNULL(pcd.check_num, 0) - IFNULL(pcd.input_num, 0)) AS inputNum ) AS subquery3 ON subquery3.type_id = mt.type_id
FROM purchase_check_details pcd LEFT JOIN (
LEFT JOIN ma_type mt ON mt.type_id = pcd.type_id SELECT
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id mt.type_id,
LEFT JOIN tm_task tt on tt.task_id=pcd.task_id mt2.type_name AS typeName,
WHERE IFNULL(pcd.check_num, 0) - IFNULL(pcd.input_num, 0) > 0 mt.type_name AS typeModelName,
and tt.task_status !=107 and tt.task_status !=106 SUM(
GROUP BY mt.type_id) AS subquery4 ON subquery4.type_id = mt.type_id IFNULL( pcd.check_num, 0 ) - IFNULL( pcd.input_num, 0 )) AS inputNum
LEFT JOIN ma_type mt2 on mt2.type_id = mt.parent_id FROM
LEFT JOIN sys_dept sd ON sd.dept_id = mt.company_id purchase_check_details pcd
WHERE mt.`level` = 4 LEFT JOIN ma_type mt ON mt.type_id = pcd.type_id
and mt.del_flag = '0' 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 != ''"> <if test="maTypeName!=null and maTypeName != ''">
AND sd.dept_name = #{maTypeName} AND sd.dept_name = #{maTypeName}
</if> </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" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </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-form-item label="关键字" prop="keyWord">
<el-input <el-input
v-model="queryParams.keyWord" v-model="queryParams.keyWord"
@ -184,6 +202,12 @@
prop="manageType" prop="manageType"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
/> />
<el-table-column
label="库管员"
align="center"
prop="typeKeepName"
:show-overflow-tooltip="true"
/>
</el-table> </el-table>
<pagination <pagination
@ -199,10 +223,10 @@
<script> <script>
import { import {
statusList, statusList,
exportList, exportList,
getUnitData, getUnitData,
getProData, getProData, getTypeKeeper,
} from '@/api/stquery/deviceStatusRecord' } from '@/api/stquery/deviceStatusRecord'
export default { export default {
@ -242,11 +266,13 @@ export default {
maType: '1', // 1 2 maType: '1', // 1 2
}, },
unitList: [], // unitList: [], //
keepIdList: [], //id
proList: [], // proList: [], //
} }
}, },
created() { created() {
this.getList() this.getList()
this.getKeepIdList()
/* this.getUnitList(); /* this.getUnitList();
this.getProList(); */ this.getProList(); */
}, },
@ -261,6 +287,7 @@ export default {
keyWord:this.queryParams.keyWord, keyWord:this.queryParams.keyWord,
agreementCode:this.queryParams.agreementCode, */ agreementCode:this.queryParams.agreementCode, */
typeName: this.queryParams.typeName, typeName: this.queryParams.typeName,
userId: this.queryParams.userId,
typeModelName: this.queryParams.typeModelName, typeModelName: this.queryParams.typeModelName,
/* startTime:this.queryParams.time && this.queryParams.time[0], /* startTime:this.queryParams.time && this.queryParams.time[0],
endTime:this.queryParams.time && this.queryParams.time[1], */ endTime:this.queryParams.time && this.queryParams.time[1], */
@ -275,7 +302,16 @@ export default {
this.leaseAuditList = res.data.rows this.leaseAuditList = res.data.rows
this.total = res.data.total 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() { async getUnitList() {
const params = { const params = {
@ -294,6 +330,14 @@ export default {
this.proList = res.data this.proList = res.data
console.log('GetProData ======================', res) console.log('GetProData ======================', res)
}, },
//
async getTypeKeeper() {
const params = {
}
const res = await getTypeKeeper(params)
this.keepIdList = res.data
console.log('GetProData ======================', res)
},
// //
reset() { reset() {
@ -328,6 +372,9 @@ export default {
`综合查询_机具仓储状态_${new Date().getTime()}.xlsx`, `综合查询_机具仓储状态_${new Date().getTime()}.xlsx`,
) )
}, },
unitChange(val) {
this.getTypeKeeper(val)
},
// //
/* mergeRow ({ row, column, rowIndex, columnIndex}) { /* mergeRow ({ row, column, rowIndex, columnIndex}) {