diff --git a/ant-design-vue-jeecg/src/views/system/report/ReportPerformanceAssessmentList.vue b/ant-design-vue-jeecg/src/views/system/report/ReportPerformanceAssessmentList.vue new file mode 100644 index 0000000..a98aa87 --- /dev/null +++ b/ant-design-vue-jeecg/src/views/system/report/ReportPerformanceAssessmentList.vue @@ -0,0 +1,165 @@ +<template> + <a-card :bordered="false"> + <!-- 查询区域 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="用户姓名"> + <a-input placeholder="请输入用户姓名" v-model="queryParam.realName"></a-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> + <a-button id="search" type="primary" @click="searchQuery" icon="search">查询</a-button> + <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> + </span> + </a-col> + </a-row> + </a-form> + </div> + <!-- 查询区域-END --> + <!-- table区域-begin --> + <div> + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + class="j-table-force-nowrap" + @change="handleTableChange"> + + <span slot="zoneCode" slot-scope="zoneCode"> + <a-tag :key="zoneCode" color="blue"> + {{ solutionZoneCode(zoneCode) }} + </a-tag> + </span> + <template slot="htmlSlot" slot-scope="text"> + <div v-html="text"></div> + </template> + </a-table> + </div> + </a-card> +</template> + +<script> + +import '@/assets/less/TableExpand.less' +import {mixinDevice} from '@/utils/mixin' +import {JeecgListMixin} from '@/mixins/JeecgListMixin' +import {getMaterialTypeList, getZoneList} from '@/api/api' + +export default { + name: 'ReportInventoryClassificationList', + mixins: [JeecgListMixin, mixinDevice], + components: {}, + data() { + return { + description: '库存分类报表页面', + zoneList: [], + zoneOptions: [], + materialTypeList: [], + firstLoad: 0, + // 表头 + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '用户姓名', + align: "center", + dataIndex: 'realName' + }, + { + title: '入库任务数', + align: "center", + dataIndex: 'receiptTaskQty' + }, + { + title: '出库任务数', + align: "center", + dataIndex: 'shipmentTaskQty' + }, + { + title: '任务总数', + align: "center", + dataIndex: 'sumTaskQty' + } + ], + url: { + list: "/report/listPerformanceAssessment", + }, + } + }, + created() { + this.loadFrom(); + }, + mounted() { + if (this.firstLoad === 0) { + this.firstLoad = 1; + return; + } + //页面没加载完,此时methods里的方法找不到,使用定时器模拟点击 + let timeSearch = setInterval(() => { + let eleSearch = document.getElementById("search"); + if (eleSearch != null) { + //调用成功,清除定时器 + clearInterval(timeSearch) + eleSearch.click(); + } + }, 200) + }, + computed: { + importExcelUrl: function () { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + }, + }, + methods: { + loadFrom() { + getMaterialTypeList().then((res) => { + if (res.success) { + this.materialTypeList = res.result + } + }); + getZoneList().then((res) => { + if (res.success) { + this.zoneList = res.result + //延迟半秒执行,避免组件未加载完,数据已经加载完 + setTimeout(() => { + //slice可以在数组的任何位置进行删除/添加操作 + this.zoneOptions.splice(0, 1); + for (const element of res.result) { + this.zoneOptions.push({value: element.code, text: element.name}) + } + }, 500) + } + }); + }, + solutionZoneCode(value) { + let actions = [] + Object.keys(this.zoneList).some(key => { + if (this.zoneList[key].code === '' + value) { + actions.push(this.zoneList[key].name) + return true + } + }) + return actions.join('') + } + } +} +</script> +<style scoped> +@import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/report/controller/ReportController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/report/controller/ReportController.java index 07bf5ad..699eba9 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/report/controller/ReportController.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/report/controller/ReportController.java @@ -31,6 +31,8 @@ import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailS import org.jeecg.modules.wms.inventory.inventoryTransaction.entity.InventoryTransaction; import org.jeecg.modules.wms.inventory.inventoryTransaction.service.IInventoryTransactionService; import org.jeecg.modules.wms.report.dto.ReportInventoryClassificationDto; +import org.jeecg.modules.wms.report.dto.ReportPerformanceAssessmentDto; +import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService; import org.jeecg.utils.HuahengJwtUtil; import org.jeecg.utils.StringUtils; import org.jeecg.utils.constant.QuantityConstant; @@ -62,7 +64,7 @@ public class ReportController extends JeecgController<InventoryTransaction, IInv @Resource private IMaterialService materialService; @Resource - private IMaterialTypeService materialTypeService; + private ITaskHeaderService taskHeaderService; @Resource private ILocationService locationService; @Resource @@ -210,10 +212,22 @@ public class ReportController extends JeecgController<InventoryTransaction, IInv */ @GetMapping(value = "/listInventoryClassification") public Result listInventoryClassification(String materialTypeCode, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { List<ReportInventoryClassificationDto> inventoryClassifyReportList = inventoryDetailService.getInventoryClassifyReport(materialTypeCode); Page<ReportInventoryClassificationDto> page = new Page<>(pageNo, pageSize); page.setRecords(inventoryClassifyReportList); return Result.OK(page); } + + /** + * 绩效考核报表列表查询 + */ + @GetMapping(value = "/listPerformanceAssessment") + public Result listPerformanceAssessment(String realName, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + List<ReportPerformanceAssessmentDto> performanceAssessmentReportList = taskHeaderService.getPerformanceAssessmentReport(realName); + Page<ReportPerformanceAssessmentDto> page = new Page<>(pageNo, pageSize); + page.setRecords(performanceAssessmentReportList); + return Result.OK(page); + } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/report/dto/ReportPerformanceAssessmentDto.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/report/dto/ReportPerformanceAssessmentDto.java new file mode 100644 index 0000000..b0d347e --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/report/dto/ReportPerformanceAssessmentDto.java @@ -0,0 +1,32 @@ +package org.jeecg.modules.wms.report.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 绩效考核报表Dto类 + */ +@Data +public class ReportPerformanceAssessmentDto implements Serializable { + + /** + * 用户姓名 + */ + private String realName; + + /** + * 任务总数 + */ + private Integer sumTaskQty; + + /** + * 入库任务数(包括整盘入库、补充入库、空容器入库) + */ + private Integer receiptTaskQty; + + /** + * 出库任务数(包括整盘出库、分拣出库、空容器出库) + */ + private Integer shipmentTaskQty; +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/mapper/TaskHeaderMapper.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/mapper/TaskHeaderMapper.java index ad993b1..65a188a 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/mapper/TaskHeaderMapper.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/mapper/TaskHeaderMapper.java @@ -4,6 +4,7 @@ import java.util.List; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.wms.report.dto.ReportPerformanceAssessmentDto; import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; /** @@ -14,4 +15,10 @@ import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; */ public interface TaskHeaderMapper extends BaseMapper<TaskHeader> { + /** + * 绩效考核报表查询 + * @param realName 用户姓名 + * @return 绩效考核报表信息 + */ + List<ReportPerformanceAssessmentDto> selectPerformanceAssessment(@Param("realName") String realName); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/mapper/xml/TaskHeaderMapper.xml b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/mapper/xml/TaskHeaderMapper.xml index d8179cd..50e418f 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/mapper/xml/TaskHeaderMapper.xml +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/mapper/xml/TaskHeaderMapper.xml @@ -2,4 +2,18 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.wms.task.taskHeader.mapper.TaskHeaderMapper"> + <select id="selectPerformanceAssessment" + resultType="org.jeecg.modules.wms.report.dto.ReportPerformanceAssessmentDto"> + SELECT sys_user.realname, + COUNT(task_header.create_by) AS sumTaskQty, + COUNT(IF((task_header.task_type = 100 OR task_header.task_type = 200 OR task_header.task_type = 500), task_header.create_by, NULL)) AS receiptTaskQty, + COUNT(IF((task_header.task_type = 300 OR task_header.task_type = 400 OR task_header.task_type = 600), task_header.create_by, NULL)) AS shipmentTaskQty + FROM sys_user + LEFT JOIN task_header ON sys_user.realname = task_header.create_by + <if test="realName != null and realName != ''"> + <bind name="realName" value="'%' + realName + '%'"/> + WHERE sys_user.realname LIKE #{realName} + </if> + GROUP BY sys_user.realname + </select> </mapper> diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java index 3dd2724..dbd0078 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java @@ -9,6 +9,7 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.wms.config.location.entity.Location; import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader; +import org.jeecg.modules.wms.report.dto.ReportPerformanceAssessmentDto; import org.jeecg.modules.wms.task.taskHeader.entity.QucikReceiptEntity; import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; @@ -454,4 +455,10 @@ public interface ITaskHeaderService extends IService<TaskHeader> { boolean delMain (Integer id); + /** + * 绩效考核报表查询 + * @param realName 用户姓名 + * @return 绩效考核报表信息 + */ + List<ReportPerformanceAssessmentDto> getPerformanceAssessmentReport(String realName); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java index 114dc59..3cbd656 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java @@ -44,6 +44,7 @@ import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptDetailService import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService; import org.jeecg.modules.wms.receipt.receiving.domain.Receive; import org.jeecg.modules.wms.receipt.receiving.service.IReceiveService; +import org.jeecg.modules.wms.report.dto.ReportPerformanceAssessmentDto; import org.jeecg.modules.wms.shipment.shipmentCombination.entity.CombinationModel; import org.jeecg.modules.wms.shipment.shipmentCombination.service.IShipmentCombinationService; import org.jeecg.modules.wms.shipment.shipmentContainerAdvice.entity.ShipmentContainerAdvice; @@ -3525,4 +3526,9 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea QuantityConstant.TASK_STATUS_COMPLETED); return super.update(taskHeader, taskHeaderLambdaQueryWrapper); } + + @Override + public List<ReportPerformanceAssessmentDto> getPerformanceAssessmentReport(String realName) { + return super.baseMapper.selectPerformanceAssessment(realName); + } }