From a7a6b5d7ed7b6e5b96866b24fd1cb7ba3dcc19d1 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期三, 22 十一月 2023 14:24:47 +0800
Subject: [PATCH] feat: 物品统计前后端
---
admin-web/src/api/dashboard/goodsStatis.js | 10
consum-base/src/main/java/com/consum/base/pojo/query/LWhGoodsStatisQry.java | 45 +++
/dev/null | 111 --------
admin-web/src/views/statisticalreport/itemReport/index.vue | 429 +++++++++++++-------------------
consum-base/src/main/java/com/consum/base/service/FinWarehouseLedgerServiceImpl.java | 4
consum-base/src/main/java/com/consum/base/controller/LWhGoodsStatisticsController.java | 50 +++
consum-base/src/main/java/com/consum/base/pojo/query/LWhLedgerQry.java | 1
consum-base/src/main/java/com/consum/base/service/LWhGoodsStatisticsServiceImpl.java | 105 ++++++++
consum-base/src/main/java/com/consum/base/service/LWhWarningConfigServiceImpl.java | 4
9 files changed, 389 insertions(+), 370 deletions(-)
diff --git a/admin-web/src/api/dashboard/goodsStatis.js b/admin-web/src/api/dashboard/goodsStatis.js
new file mode 100644
index 0000000..dc8fded
--- /dev/null
+++ b/admin-web/src/api/dashboard/goodsStatis.js
@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 鑾峰彇浜嬩欢缁熻
+export function getGoodsStatistics(params) {
+ return request({
+ url: '/pc/warehouse/goodsStatistics',
+ method: 'get',
+ params
+ });
+}
diff --git a/admin-web/src/views/statisticalreport/itemReport/edit.vue b/admin-web/src/views/statisticalreport/itemReport/edit.vue
deleted file mode 100644
index 37b0db9..0000000
--- a/admin-web/src/views/statisticalreport/itemReport/edit.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-<template>
- <win-sm :title="setting.title" @close="close" :width="'800px'">
- <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
- <el-form-item label="缂栧彿" prop="code">
- <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
- </el-form-item>
- <el-form-item label="浠撳簱鍚嶇О" prop="name">
- <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
- </el-form-item>
- <el-form-item label="鍦板潃" >
- <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-switch
- v-model="formData.status"
- active-color="#0d997c"
- inactive-color="#C0CCDA">
- </el-switch>
- </el-form-item>
- </el-form>
- <div slot="footer" align="center" class="dialog-footer">
- <my-button name="鍙栨秷" site="form" @click="close"/>
- <my-button name="淇濆瓨" site="form" @click="save"/>
- </div>
- </win-sm>
-</template>
-
-<script>
-import winSm from '@/components/win/win-sm'
-import myButton from '@/components/myButton/myButton'
-import * as finsystenant from '@/api/baseSetting/finsystenant'
-
-export default {
- components: {winSm, myButton},
- props: {
- setting: {
- type: Object,
- default: () => {
- }
- }
- },
- data() {
- return {
- checkAll: false,
- checkedList: [],
- formData: {
- code: '',
- name: '',
- status: true,
- summary: '',
- },
- rules: {
- code: [
- {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
- ],
- name: [
- {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
- ],
- status: [
- {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
- ]
- }
- }
- },
- created() {
- if(this.setting.info){
- this.formData = Object.assign({},JSON.parse(this.setting.info))
- }
- },
- methods: {
- getEditInfo(id){
-
- },
- close() {
- this.$emit('close')
- },
- save() {
- this.$refs.ruleForm.validate((valid) => {
- if (valid) {
- const params = Object.assign({}, this.formData)
- if(this.setting.id){
- // 缂栬緫鎺ュ彛
- finsystenant.edit(params).then(res => {
- if (res) {
- this.$message.success('淇濆瓨鎴愬姛锛�')
- this.close()
- this.$emit('search')
- } else {
- this.$message.error('淇濆瓨澶辫触')
- }
- })
- }else{
- params.orgId = this.setting.orgId
- finsystenant.add(params).then(res => {
- if (res) {
- this.$message.success('淇濆瓨鎴愬姛锛�')
- this.close()
- this.$emit('search')
- } else {
- this.$message.error('淇濆瓨澶辫触')
- }
- })
- }
- } else {
- this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
- }
- })
- }
- }
-}
-</script>
diff --git a/admin-web/src/views/statisticalreport/itemReport/index.vue b/admin-web/src/views/statisticalreport/itemReport/index.vue
index 2936cd9..f205b0d 100644
--- a/admin-web/src/views/statisticalreport/itemReport/index.vue
+++ b/admin-web/src/views/statisticalreport/itemReport/index.vue
@@ -1,280 +1,191 @@
<template>
<div class="app-container">
- <el-container>
- <el-container>
- <el-card class="box-card" style="width: 100%" shadow="never">
- <!--鎼滅储鏉′欢-->
- <div class="filter-container">
- <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
- </div>
- <el-row style="margin-top: 15px">
- <el-col>
- <!--鍒楄〃-->
- <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
- </el-col>
- </el-row>
- <!--娣诲姞/缂栬緫寮圭獥-->
- <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
- </el-card>
- </el-container>
- </el-container>
- <my-import
- :import-setting="importSetting"
- :dialog-show="importSetting.dialogShow"
- :dialog-title="importSetting.dialogTitle"
- />
+ <el-card class="box-card" shadow="never">
+ <div class="filter-container" style="margin-bottom: 10px">
+ <my-search ref="searchBar" :items="items" @search="filterForm"></my-search>
+ </div>
+ <div class="title" align="center">鐗╁搧缁熻琛�</div>
+ <el-table
+ v-loading="loading"
+ :data="tableData"
+ border
+ style="width: 100%">
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="orgName"
+ label="鏈烘瀯"
+ width="150">
+ </el-table-column>
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="warehouseName"
+ label="浠撳簱/閮ㄩ棬"
+ width="150">
+ </el-table-column>
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="goodsCode"
+ label="鐗╁搧缂栫爜"
+ width="150">
+ </el-table-column>
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="goodsTemplateName"
+ label="鐗╁搧鍚嶇О"
+ width="150">
+ </el-table-column>
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="baseGoodsModelsName"
+ label="瑙勬牸鍨嬪彿"
+ width="150">
+ </el-table-column>
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="zaiKuNum"
+ label="鍦ㄥ簱/鍦ㄧ敤鏁伴噺"
+ width="150">
+ </el-table-column>
+
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="baoFeiNum"
+ label="鎶ュ簾鏁�"
+ width="150">
+ </el-table-column>
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="diaoBoNum"
+ label="璋冩嫧鏁�"
+ width="150">
+ </el-table-column>
+ <el-table-column
+ fixed="left"
+ align="center"
+ prop="totalNum"
+ label="鎬绘暟閲�"
+ width="150">
+ </el-table-column>
+ </el-table>
+ </el-card>
</div>
</template>
<script>
-import MyTableV2 from "@/components/myTable/myTableV2";
-import MyButton from "@/components/myButton/myButton";
-import SettingIplatform from '@/utils/settingIplatform';
-import edit from './edit'
-import * as finsystenant from '@/api/baseSetting/finsystenant'
-import myImport from '@/views/components/myImport'
-import {getBaseUrl} from '@/utils/base';
+ import {getGoodsStatistics} from '@/api/dashboard/goodsStatis.js'
+ import {formatDate,LongToDate} from "@/utils/DateFormatter";
+ import {downLoad} from "@/utils/base";
+ import SettingIplatform from '@/utils/settingIplatform';
-export default {
- name: "index",
- components: {MyButton, MyTableV2, edit, myImport},
- data() {
- return {
- // 鎼滅储妗�
- items: [
- {
- type: 'text',
- dataIndex: 'name',
- label: '鍗曞彿',
- placeholder: '璇疯緭鍏�',
- defaultValue: ''
- },
- {
- type: 'select',
- dataIndex: 'status',
- label: '绫诲瀷',
- placeholder: '璇烽�夋嫨',
- defaultValue: '1',
- options: [
- {
- label: '鍚敤',
- value: '1'
+ export default {
+ data() {
+ return {
+ items: [
+ {
+ type: 'cascader',
+ dataIndex: 'agencyId',
+ label: '鏈烘瀯',
+ placeholder: '璇烽�夋嫨',
+ defaultValue: '',
+ options: [],
+ cascader: [{key:'warehouseId',queryKey: 'agencyId'},{key:'goodsTemplateId',queryKey: 'agencyId'}],
+ optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null },
+ },
+ {
+ type: 'select',
+ dataIndex: 'baseWarehouseId',
+ label: '浠撳簱',
+ placeholder: '璇烽�夋嫨',
+ defaultValue: '',
+ options: [],
+ optionsConfig: {
+ label: 'warehouseName',
+ value: 'id',
+ url: SettingIplatform.apiBaseURL + '/pc/base/warehouse/select/tenant_warehouse'
},
- {
- label: '绂佺敤',
- value: '0'
- }
- ]
- },
- {
- type: 'text',
- dataIndex: 'name',
- label: '鐗╁搧鍚嶇О',
- placeholder: '璇疯緭鍏�',
- defaultValue: ''
- },
- {
- type: 'text',
- dataIndex: 'name',
- label: '鍒涘缓浜�',
- placeholder: '璇疯緭鍏�',
- defaultValue: ''
- },
- ],
- // 鏍戞暟鎹�
- treeDataList: [],
- // 鎼滅储鏉′欢
- filterFrom: {
- tenantId: null,
- userName: null,
- userPhone: null,
- status: 1
- },
- // 瀵煎叆
- importSetting: {
- dialogTitle: '瀵煎叆',
- dialogShow: false,
- fileSettings: {
- data: {},
- uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
- accept: '.xls', // 鏍煎紡
- type: 'text', // 鍥炴樉褰㈠紡
- loading: false // 瀵煎叆鏁堟灉
},
- /* 妯℃澘涓嬭浇 */
- templateSettings: {
- templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
- templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+ {
+ type: 'select',
+ dataIndex: 'goodsTemplateId',
+ label: '鐗╁搧鍚嶇О',
+ placeholder: '璇疯緭鍏�',
+ defaultValue: '',
+ options: [],
+ cascader: [{key:'categoryId',queryKey: 'goodsTemplatesId'}],
+ optionsConfig: {
+ label: 'goodsName',
+ value: 'id',
+ url: SettingIplatform.apiBaseURL + '/pc/base/goods/template/query/goodsTemplate',
+ },
},
- onSuccess: null
- },
- editSetting: {
- title: '',
- id: '',
- orgId: '',
- show: false,
- },
- // 琛ㄦ牸鏁版嵁
- table: {
- showIndex: true, // 鏄惁鏄剧ず搴忓彿
- expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
- url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
- // 宸ュ叿鏉�
- tools: {
- columnsCtrl: {// 鍒楁帶鍒舵寜閽�
- show: false
+ {
+ type: 'select',
+ dataIndex: 'baseGoodsModelsId',
+ label: '瑙勬牸鍨嬪彿',
+ placeholder: '璇烽�夋嫨',
+ defaultValue: '',
+ options: [],
+ optionsConfig: {
+ label: 'modelName',
+ value: 'id',
+ url: SettingIplatform.apiBaseURL + '/pc/base/goods/models/query/goodsModel'
+ },
},
- generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
- show: false
+ {
+ type: 'select',
+ dataIndex: 'costType',
+ label: '绫诲埆',
+ placeholder: '璇烽�夋嫨',
+ defaultValue: '',
+ options: [{
+ label: 'A',
+ value: '1'},{
+ label: 'B',
+ value: '2'},{
+ label: 'C',
+ value: '3'}],
+
},
- // 鑷畾涔夊伐鍏锋潯鎸夐挳
- custom: [
- ]
- },
- // 鍒椾俊鎭�
- columns: [
- {title: '绫诲瀷', field: 'name', align: 'left',},
- {title: '鍗曞彿', field: 'code', align: 'center'},
- {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
- {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
- {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
- {title: '閲戦', field: 'summary', align: 'left',},
- {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
- {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
- {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
],
- // 鎿嶄綔淇℃伅
- operation: {
- show: true, // 鏄剧ず鎿嶄綔鍒�
- width: '150', // 鍒楀
- attr: [
- {
- title: '璇︽儏',
- events: (row) => {
- this.showAudit(row);
- },
- },
- ],
- },
- paging: {
- show: true, // 鏄剧ず鍒嗛〉
- // 鍒嗛〉淇℃伅
- page: {
- small: false,
- pageNum: 1,
- pageSize: 10,
- total: 0
- }
- }
+ tableData: [],
+ loading: true,
+ params:{examYear: formatDate(new Date(),'yyyyMMdd')}
+ }
+ },
+ mounted() {
+ this.getTableData({})
+ },
+ methods: {
+ filterForm(e) {
+ this.params = e
+ this.getTableData(e)
},
- }
- },
- created() {
- // 鑾峰彇鏈烘瀯鏍�
- this.initTreeData()
- },
- methods: {
- //瀵煎叆
- importOrg() {
- this.importSetting.dialogShow = true
- this.importSetting.onSuccess = (response, callBack) => {
- if (response.code===1){
- this.$message.success(response.msg)
- this.search(1)
- }else{
- this.$message.warning(response.msg)
- }
- callBack()
- }
- },
- // 宸︿晶鏍戝垵濮嬪寲
- initTreeData() {
- finsystenant.getTree().then(res => {
- const content = res || []
- this.treeDataList.splice(0, this.treeDataList.length)
- this.treeDataList = content
- if (content.length > 0) {
- this.importSetting.fileSettings.data = {pid: content[0].id}
- }
- })
- },
- updState(row) {
- let vm = this
- let text = row.status == 0 ? "鍚敤" : "绂佺敤";
- vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
- let params = Object.assign({}, row)
- params.status = row.status == 1 ? 0 : 1
- finsystenant.edit(params).then(res => {
- if (res) {
- row.status = row.status === 1 ? 0 : 1
- vm.$modal.msgSuccess(text + "鎴愬姛");
- vm.search()
- }
+ getTableData(e) {
+ this.loading = true
+ getGoodsStatistics(e).then(res => {
+ this.tableData = res
+ this.loading = false
+ }).catch(() => {
+ this.loading = false
})
- })
- },
- del(row) {
- this.$modal
- .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
- .then(function () {
- finsystenant.del({id: row.id}).then((res) => {
- });
- })
- .then((res) => {
- this.$message.success('鍒犻櫎鎴愬姛锛�');
- this.search()
- })
- .catch(() => {
- });
- },
- showAdd() {
- // if (!this.editSetting.orgId) {
- // this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
- // } else {
- this.editSetting.id = null;
- this.editSetting.info = null;
- this.editSetting.title = '鏂板';
- this.editSetting.show = true;
- // }
- },
- showAudit(row) {
- this.editSetting.id = row.id;
- this.editSetting.info = JSON.stringify(row);
- this.editSetting.title = '缂栬緫';
- this.editSetting.show = true;
- },
- nodeClick(param) {
- param = param || {}
- this.p = Object.assign({}, {
- id: param.id,
- name: param.name
- })
- if (this.p.id != undefined && this.p.id != null) {
- this.filterFrom.tenantId = this.p.id
- this.editSetting.orgId = this.p.id
- } else {
- this.filterFrom.tenantId = null
- this.editSetting.orgId = null
}
- this.importSetting.fileSettings.data = {pid: param.id}
- this.search(1)
- },
- // 鏌ヨtable鍒楄〃
- search(pageNum) {
- if (pageNum != undefined) {
- this.$refs.myTable.search(pageNum)
- } else {
- this.$refs.myTable.search()
- }
- },
- fifterForm(params) {
- this.filterFrom = Object.assign(this.filterFrom, params)
- this.search(1)
}
}
-}
</script>
-<style scoped>
-
+<style scoped class="">
+ .title{
+ text-align: center;
+ font-size: 18px;
+ font-weight: bold;
+ margin-bottom: 10px;
+ }
</style>
diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhGoodsStatisticsController.java b/consum-base/src/main/java/com/consum/base/controller/LWhGoodsStatisticsController.java
new file mode 100644
index 0000000..576c9e8
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/controller/LWhGoodsStatisticsController.java
@@ -0,0 +1,50 @@
+package com.consum.base.controller;
+
+import com.consum.base.BaseController;
+import com.consum.base.core.utils.CommonUtil;
+import com.consum.base.pojo.query.LWhGoodsStatisQry;
+import com.consum.base.service.LWhGoodsStatisticsServiceImpl;
+import com.consum.model.po.FinSysTenantUser;
+import com.iplatform.model.po.S_user_core;
+import com.walker.web.ResponseValue;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @ClassName LWhGoodsStatisticsController
+ * @Author cy
+ * @Date 2023/11/21
+ * @Description 鐗╁搧缁熻
+ * @Version 1.0
+ **/
+@RestController
+@RequestMapping("/pc/warehouse/goodsStatistics")
+public class LWhGoodsStatisticsController extends BaseController {
+
+ @Resource
+ private LWhGoodsStatisticsServiceImpl lWhGoodsStatisticsService;
+
+ @GetMapping("")
+ public ResponseValue getWhGoodsStatisList() {
+ S_user_core currentUser = this.getCurrentUser();
+ if (currentUser == null) {
+ return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+ }
+ LWhGoodsStatisQry param = CommonUtil.getObjFromReq(LWhGoodsStatisQry.class);
+ LWhGoodsStatisQry qry = new LWhGoodsStatisQry();
+ CommonUtil.copyProperties(param, qry);
+ param = qry;
+ /*褰撳墠鐧诲綍浜哄彧鑳界湅鍒拌嚜宸辨満鏋勪笅鐨勫垪琛�*/
+ FinSysTenantUser sysInfo = this.getSysInfo();
+ String tenantId = sysInfo.getTenantId();
+ Long paramAgencyId = param.getAgencyId();
+ if (paramAgencyId == null || !paramAgencyId.toString().startsWith(tenantId)) {
+ param.setAgencyId(Long.valueOf(tenantId));
+ }
+ return ResponseValue.success(lWhGoodsStatisticsService.getWhGoodsStatisList(param));
+
+ }
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/query/LWhGoodsStatisQry.java b/consum-base/src/main/java/com/consum/base/pojo/query/LWhGoodsStatisQry.java
new file mode 100644
index 0000000..ba9feb0
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/query/LWhGoodsStatisQry.java
@@ -0,0 +1,45 @@
+package com.consum.base.pojo.query;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName LWhGoodsStatisParam
+ * @Author cy
+ * @Date 2023/11/22
+ * @Description
+ * @Version 1.0
+ **/
+@ApiModel(value = "鐗╁搧缁熻鏌ヨ鍙傛暟")
+@Data
+public class LWhGoodsStatisQry {
+
+ @ApiModelProperty(value = "鏈烘瀯")
+ private Long agencyId;
+
+ @ApiModelProperty(value = "閮ㄩ棬id")
+ private Long departmentId;
+
+ @ApiModelProperty("浠撳簱id")
+ private Long baseWarehouseId;
+
+ @ApiModelProperty(value = "鐗╁搧鍚嶇О")
+ private String goodsTemplateName;
+ private Long goodsTemplateId;
+
+ @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+ private String baseGoodsModelsName;
+
+ @ApiModelProperty("瑙勬牸鍨嬪彿")
+ private Long baseGoodsModelsId;
+
+ @ApiModelProperty("浠峰�肩被鍨�")
+ private Short costType;
+
+ @ApiModelProperty(value = "鎿嶄綔鏃堕棿")
+ private Long dealTimeStart;
+ @ApiModelProperty(value = "鎿嶄綔鏃堕棿")
+ private Long dealTimeEnd;
+
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/query/LWhLedgerQry.java b/consum-base/src/main/java/com/consum/base/pojo/query/LWhLedgerQry.java
index 7f81722..5e847d4 100644
--- a/consum-base/src/main/java/com/consum/base/pojo/query/LWhLedgerQry.java
+++ b/consum-base/src/main/java/com/consum/base/pojo/query/LWhLedgerQry.java
@@ -26,6 +26,7 @@
@ApiModelProperty("鐗╁搧鍚嶇О")
private String goodsTemplateName;
+ private String goodsTemplateId;
@ApiModelProperty("鍒嗙被")
private Long categoryId;
diff --git a/consum-base/src/main/java/com/consum/base/service/FinWarehouseLedgerServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/FinWarehouseLedgerServiceImpl.java
index e468793..664ffa8 100644
--- a/consum-base/src/main/java/com/consum/base/service/FinWarehouseLedgerServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/FinWarehouseLedgerServiceImpl.java
@@ -50,6 +50,10 @@
sql.append(" AND goods.GOODS_TEMPLATE_NAME like :goodsTemplateName");
paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
}
+ if (param.getGoodsTemplateId() != null) {
+ sql.append(" AND goods.BASE_GOODS_TEMPLATE_ID=:goodsTemplateId");
+ paramts.put("goodsTemplateId", param.getGoodsTemplateId());
+ }
//鍒嗙被
if (param.getCategoryId() != null) {
sql.append(" AND goodsTemp.CATEGORY_ID=:categoryId");
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhGoodsStatisticsServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhGoodsStatisticsServiceImpl.java
new file mode 100644
index 0000000..67a3c85
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/service/LWhGoodsStatisticsServiceImpl.java
@@ -0,0 +1,105 @@
+package com.consum.base.service;
+
+import com.consum.base.core.utils.MapperUtil;
+import com.consum.base.pojo.query.LWhGoodsStatisQry;
+import com.walker.infrastructure.utils.StringUtils;
+import com.walker.jdbc.service.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @ClassName LWhGoodsStatisticsServiceImpl
+ * @Author cy
+ * @Date 2023/11/21
+ * @Description
+ * @Version 1.0
+ **/
+@Service
+public class LWhGoodsStatisticsServiceImpl extends BaseServiceImpl {
+ private String GET_WHGOODS_STATIS_LIST_COLUMN = "SELECT tCangKu.org_name,tCangKu.WAREHOUSE_NAME,goodsTemp.GOODS_CODE,tKuCun.GOODS_TEMPLATE_NAME,tKuCun.BASE_GOODS_MODELS_NAME,CASE tKuCun.COST_TYPE WHEN 1 THEN 'A绫�' WHEN 2 THEN 'B绫�' WHEN 3 THEN 'C绫�' END AS cost_Type,tKuCun.total_num,tKuCun.zai_ku_num,tKuCun.diao_bo_num,tKuCun.bao_fei_num FROM ";
+ private String GET_WHGOODS_STATIS_LIST_T_CANGKU = "(SELECT tenant.id tenantId,tenant.NAME AS org_name,ware.*FROM fin_sys_tenant tenant right JOIN (SELECT 0 WAREHOUSE_TYPE,id,AGENCY_ID,WAREHOUSE_NAME FROM BASE_WAREHOUSE UNION ALL SELECT 1 WAREHOUSE_TYPE,id,TENANT_ID AGENCY_ID,`NAME` WAREHOUSE_NAME FROM fin_sys_tenant_department) ware ON tenant.id=ware.AGENCY_ID ";
+ private String GET_WHGOODS_STATIS_LIST_T_CANGKU_WHERE = "where 1=1";
+ private String GET_WHGOODS_STATIS_LIST_T_CANGKU_END = ") tCangKu LEFT JOIN";
+ private String GET_WHGOODS_STATIS_LIST_T_KUCUN = "(SELECT WAREHOUSE_TYPE,WAREHOUSE_ID,BASE_GOODS_TEMPLATE_ID,GOODS_TEMPLATE_NAME,COST_TYPE,BASE_GOODS_MODELS_ID,BASE_GOODS_MODELS_NAME,COUNT(CASE WHEN goods.STATES BETWEEN 0 AND 2 THEN 1 END) AS total_num,count(CASE WHEN goods.STATES=1 OR goods.STATES=2 THEN 1 END) zai_ku_num,count(CASE WHEN goods.STATES=0 THEN 1 END) diao_bo_num,count(CASE WHEN goods.STATES=3 THEN 1 END) bao_fei_num FROM l_wh_goods goods ";
+ private String GET_WHGOODS_STATIS_LIST_T_KUCUN_WHERE = "where 1=1";
+ private String GET_WHGOODS_STATIS_LIST_T_KUCUN_GROUP_BY = " GROUP BY WAREHOUSE_TYPE,WAREHOUSE_ID,BASE_GOODS_TEMPLATE_ID,GOODS_TEMPLATE_NAME,BASE_GOODS_MODELS_ID,BASE_GOODS_MODELS_NAME,COST_TYPE) tKuCun ON tCangKu.WAREHOUSE_TYPE=tKuCun.WAREHOUSE_TYPE and tCangKu.id = tKuCun.WAREHOUSE_ID LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON goodsTemp.id=tKuCun.BASE_GOODS_TEMPLATE_ID ";
+ private String GET_WHGOODS_STATIS_LIST_T_END_WHERE = " where 1=1";
+
+
+ public List getWhGoodsStatisList(LWhGoodsStatisQry param) {
+ StringBuilder sqlColumn = new StringBuilder(GET_WHGOODS_STATIS_LIST_COLUMN);
+ StringBuilder sqlCangKu = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_CANGKU);
+ StringBuilder sqlCangKuWhere = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_CANGKU_WHERE);
+ StringBuilder sqlCangKuEnd = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_CANGKU_END);
+ StringBuilder sqlKuCun = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_KUCUN);
+ StringBuilder sqlKuCunWhere = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_KUCUN_WHERE);
+ StringBuilder sqlKuCunGoupBy = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_KUCUN_GROUP_BY);
+ StringBuilder sqlEndWhere = new StringBuilder(GET_WHGOODS_STATIS_LIST_T_END_WHERE);
+
+
+ HashMap<String, Object> paramts = new HashMap<>();
+ //鏈烘瀯
+ if (param.getAgencyId() != null) {
+ sqlCangKuWhere.append(" AND left(tenant.id, length(:lengthAgencyId)) = :agencyId");
+ paramts.put("lengthAgencyId", param.getAgencyId());
+ paramts.put("agencyId", param.getAgencyId());
+ }
+ // 閮ㄩ棬
+ if (param.getDepartmentId() != null) {
+ sqlCangKuWhere.append(" AND ware.WAREHOUSE_TYPE=1 and ware.id = :departmentId");
+ paramts.put("departmentId", param.getDepartmentId());
+ }
+ //浠撳簱
+ if (param.getBaseWarehouseId() != null) {
+ sqlCangKuWhere.append(" AND ware.WAREHOUSE_TYPE =0 and ware.id = :warehouseId");
+ paramts.put("warehouseId", param.getBaseWarehouseId());
+ }
+ //鐗╁搧鍚嶇О
+ if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
+ sqlKuCunWhere.append(" AND goods.GOODS_TEMPLATE_NAME like :goodsTemplateName");
+ paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+ }
+ if (param.getGoodsTemplateId() != null) {
+ sqlKuCunWhere.append(" AND goods.BASE_GOODS_TEMPLATE_ID=:goodsTemplateId");
+ paramts.put("goodsTemplateId", param.getGoodsTemplateId());
+ }
+ //瑙勬牸鍨嬪彿
+ if (param.getBaseGoodsModelsId() != null) {
+ sqlKuCunWhere.append(" AND goods.BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
+ paramts.put("baseGoodsModelsId", param.getBaseGoodsModelsId());
+ }
+ //浠峰�肩被鍨�
+ if (param.getCostType() != null) {
+ // 灏嗘暟瀛楄浆鎹负瀵瑰簲鐨勫瓧绗�
+ char costType = (char) ('A' + param.getCostType() - 1);
+ sqlKuCunWhere.append(" AND goods.COST_TYPE=':costType'");
+ paramts.put("costType", costType);
+ }
+
+// // 鎿嶄綔鏃堕棿
+// if (param.getDealTimeStart() != null) {
+// sqlEnd.append(" and flow.DEAL_TIME >=:dealTimeStart ");
+// paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
+// }
+// if (param.getDealTimeEnd() != null) {
+// sqlEnd.append(" and flow.DEAL_TIME <:dealTimeEnd ");
+// paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
+// }
+ sqlEndWhere.append(" ORDER BY tKuCun.total_num desc,tCangKu.tenantId asc");
+
+ StringBuilder sql = new StringBuilder();
+ sql.append(sqlColumn)
+ .append(sqlCangKu)
+ .append(sqlCangKuWhere)
+ .append(sqlCangKuEnd)
+ .append(sqlKuCun)
+ .append(sqlKuCunWhere)
+ .append(sqlKuCunGoupBy)
+
+ .append(sqlEndWhere);
+
+ return select(sql.toString(), paramts, new MapperUtil());
+ }
+}
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhWarningConfigServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhWarningConfigServiceImpl.java
index 25cb395..f29fd2e 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhWarningConfigServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhWarningConfigServiceImpl.java
@@ -54,6 +54,10 @@
sql.append(" AND goodsTemp.GOODS_NAME like :goodsTemplateName");
paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
}
+ if (param.getBaseGoodsTemplateId() != null) {
+ sql.append(" AND wareConf.BASE_GOODS_TEMPLATE_ID=:baseGoodsTemplateId");
+ paramts.put("baseGoodsTemplateId", param.getBaseGoodsTemplateId());
+ }
//鍒嗙被
if (param.getCategoryId() != null) {
sql.append(" AND cate.id=:categoryId");
--
Gitblit v1.9.1