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