Commit 2164125ca88bd48c26099c2f46b189fa230ae737

Authored by “wangming”
1 parent ada64779

feat: 删除LqXhmxb相关代码并优化LqXhHyhkService

- 删除LqXhmxb相关的所有后端代码(Service、Entity、DTO、Interface、Mapper)
- 删除LqXhmxb相关的前端Vue组件文件
- 删除LqKdQkbj(欠款补缴)相关代码
- 优化LqXhHyhkService.GetMemberCardUsageRecord方法,支持分页和性能优化
- 修复LqXhHyhkService.GetJksyjList方法,添加分页和时间过滤
- 更新LqKdKdjlbService.GetDebtRecordByStoreId方法,支持分页和已缴欠款逻辑
- 完善LqHytkHytkService.VoidRefundCardInfo方法,添加事务处理
- 修复LqKdKdjlbStringGenerator中健康师名称显示问题
- 更新多个Entity文件以匹配数据库结构
- 添加新的DTO类支持分页查询功能
Showing 45 changed files with 621 additions and 2071 deletions
antis-ncc-admin/src/views/lqXhmxb/ExportBox.vue deleted
1 -<template>  
2 - <el-dialog title="导出数据" :close-on-click-modal="false" :visible.sync="visible"  
3 - class="NCC-dialog NCC-dialog_center" lock-scroll width="600px">  
4 - <el-form label-position="top" label-width="80px">  
5 - <el-form-item label="数据选择">  
6 - <el-radio-group v-model="type">  
7 - <el-radio :label="0">当前页面数据</el-radio>  
8 - <el-radio :label="1">全部页面数据</el-radio>  
9 - </el-radio-group>  
10 - </el-form-item>  
11 - <el-form-item label="导出字段">  
12 - <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"  
13 - @change="handleCheckAllChange">全选</el-checkbox>  
14 - <el-checkbox-group v-model="columns" @change="handleCheckedChange">  
15 - <el-checkbox v-for="item in columnList" :label="item.prop" :key="item.prop">  
16 - {{item.label}}  
17 - </el-checkbox>  
18 - </el-checkbox-group>  
19 - </el-form-item>  
20 - </el-form>  
21 - <span slot="footer" class="dialog-footer">  
22 - <el-button @click="visible=false">取 消</el-button>  
23 - <el-button type="primary" @click="downLoad">导 出</el-button>  
24 - </span>  
25 - </el-dialog>  
26 -</template>  
27 -  
28 -<script>  
29 -export default {  
30 - data() {  
31 - return {  
32 - visible: false,  
33 - btnLoading: false,  
34 - type: 0,  
35 - columns: [],  
36 - checkAll: true,  
37 - isIndeterminate: false,  
38 - columnList: []  
39 - }  
40 - },  
41 - methods: {  
42 - init(columnList) {  
43 - this.visible = true  
44 - this.columnList = columnList  
45 - this.columns = columnList.map(o => o.prop)  
46 - },  
47 - handleCheckAllChange(val) {  
48 - this.columns = val ? this.columnList.map(o => o.prop) : [];  
49 - this.isIndeterminate = false;  
50 - },  
51 - handleCheckedChange(value) {  
52 - let checkedCount = value.length;  
53 - this.checkAll = checkedCount === this.columnList.length;  
54 - this.isIndeterminate = checkedCount > 0 && checkedCount < this.columnList.length;  
55 - },  
56 - downLoad() {  
57 - this.$emit('download', { dataType: this.type, selectKey: this.columns.join(',') })  
58 - }  
59 - }  
60 -}  
61 -</script>  
62 -<style lang="scss" scoped>  
63 ->>> .el-dialog__body {  
64 - padding: 20px !important;  
65 -}  
66 -</style>  
67 \ No newline at end of file 0 \ No newline at end of file
antis-ncc-admin/src/views/lqXhmxb/Form.vue deleted
1 -<template>  
2 - <el-dialog :title="!dataForm.id ? '新建' : isDetail ? '详情':'编辑'" :close-on-click-modal="false" :visible.sync="visible" class="NCC-dialog NCC-dialog_center" lock-scroll width="600px">  
3 - <el-row :gutter="15" class="" >  
4 - <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right" :disabled="!!isDetail" :rules="rules">  
5 - <el-col :span="24" v-if="false" >  
6 - <el-form-item label="消耗编号" prop="id">  
7 - <el-input v-model="dataForm.id" placeholder="请输入" clearable :style='{"width":"100%"}' >  
8 - </el-input>  
9 - </el-form-item>  
10 - </el-col>  
11 - <el-col :span="24">  
12 - <el-form-item label="门店编号" prop="mdbh">  
13 - <el-input v-model="dataForm.mdbh" placeholder="请输入" clearable :style='{"width":"100%"}' >  
14 - </el-input>  
15 - </el-form-item>  
16 - </el-col>  
17 - <el-col :span="24">  
18 - <el-form-item label="门店名称" prop="mdmc">  
19 - <el-input v-model="dataForm.mdmc" placeholder="请输入" clearable :style='{"width":"100%"}' >  
20 - </el-input>  
21 - </el-form-item>  
22 - </el-col>  
23 - <el-col :span="24">  
24 - <el-form-item label="部门编号" prop="bmbh">  
25 - <el-input v-model="dataForm.bmbh" placeholder="请输入" clearable :style='{"width":"100%"}' >  
26 - </el-input>  
27 - </el-form-item>  
28 - </el-col>  
29 - <el-col :span="24">  
30 - <el-form-item label="部门名称" prop="bmmc">  
31 - <el-input v-model="dataForm.bmmc" placeholder="请输入" clearable :style='{"width":"100%"}' >  
32 - </el-input>  
33 - </el-form-item>  
34 - </el-col>  
35 - <el-col :span="24">  
36 - <el-form-item label="员工编号" prop="ygbh">  
37 - <el-input v-model="dataForm.ygbh" placeholder="请输入" clearable :style='{"width":"100%"}' >  
38 - </el-input>  
39 - </el-form-item>  
40 - </el-col>  
41 - <el-col :span="24">  
42 - <el-form-item label="员工名称" prop="ygmc">  
43 - <el-input v-model="dataForm.ygmc" placeholder="请输入" clearable :style='{"width":"100%"}' >  
44 - </el-input>  
45 - </el-form-item>  
46 - </el-col>  
47 - <el-col :span="24">  
48 - <el-form-item label="项目数" prop="xms">  
49 - <el-input v-model="dataForm.xms" placeholder="请输入" clearable :style='{"width":"100%"}' >  
50 - </el-input>  
51 - </el-form-item>  
52 - </el-col>  
53 - <el-col :span="24">  
54 - <el-form-item label="消耗" prop="xh">  
55 - <el-input v-model="dataForm.xh" placeholder="请输入" clearable :style='{"width":"100%"}' >  
56 - </el-input>  
57 - </el-form-item>  
58 - </el-col>  
59 - <el-col :span="24">  
60 - <el-form-item label="手工" prop="sg">  
61 - <el-input v-model="dataForm.sg" placeholder="请输入" clearable :style='{"width":"100%"}' >  
62 - </el-input>  
63 - </el-form-item>  
64 - </el-col>  
65 - <el-col :span="24">  
66 - <el-form-item label="其它手工1" prop="qtsg1">  
67 - <el-input v-model="dataForm.qtsg1" placeholder="请输入" clearable :style='{"width":"100%"}' >  
68 - </el-input>  
69 - </el-form-item>  
70 - </el-col>  
71 - <el-col :span="24">  
72 - <el-form-item label="其它手工2" prop="qtsg2">  
73 - <el-input v-model="dataForm.qtsg2" placeholder="请输入" clearable :style='{"width":"100%"}' >  
74 - </el-input>  
75 - </el-form-item>  
76 - </el-col>  
77 - <el-col :span="24">  
78 - <el-form-item label="其它手工3" prop="qtsg3">  
79 - <el-input v-model="dataForm.qtsg3" placeholder="请输入" clearable :style='{"width":"100%"}' >  
80 - </el-input>  
81 - </el-form-item>  
82 - </el-col>  
83 - <el-col :span="24">  
84 - <el-form-item label="手工合计" prop="sghj">  
85 - <el-input v-model="dataForm.sghj" placeholder="请输入" clearable :style='{"width":"100%"}' >  
86 - </el-input>  
87 - </el-form-item>  
88 - </el-col>  
89 - </el-form>  
90 - </el-row>  
91 - <span slot="footer" class="dialog-footer">  
92 - <el-button @click="visible = false">取 消</el-button>  
93 - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail">确 定</el-button>  
94 - </span>  
95 - </el-dialog>  
96 -</template>  
97 -<script>  
98 - import request from '@/utils/request'  
99 - import { getDictionaryDataSelector } from '@/api/systemData/dictionary'  
100 - import { previewDataInterface } from '@/api/systemData/dataInterface'  
101 - export default {  
102 - components: {},  
103 - props: [],  
104 - data() {  
105 - return {  
106 - loading: false,  
107 - visible: false,  
108 - isDetail: false,  
109 - dataForm: {  
110 - id:'',  
111 - id:undefined,  
112 - mdbh:undefined,  
113 - mdmc:undefined,  
114 - bmbh:undefined,  
115 - bmmc:undefined,  
116 - ygbh:undefined,  
117 - ygmc:undefined,  
118 - xms:undefined,  
119 - xh:undefined,  
120 - sg:undefined,  
121 - qtsg1:undefined,  
122 - qtsg2:undefined,  
123 - qtsg3:undefined,  
124 - sghj:undefined,  
125 - },  
126 - rules: {  
127 - },  
128 - }  
129 - },  
130 - computed: {},  
131 - watch: {},  
132 - created() {  
133 - },  
134 - mounted() {  
135 - },  
136 - methods: {  
137 - goBack() {  
138 - this.$emit('refresh')  
139 - },  
140 - init(id, isDetail) {  
141 - this.dataForm.id = id || 0;  
142 - this.visible = true;  
143 - this.isDetail = isDetail || false;  
144 - this.$nextTick(() => {  
145 - this.$refs['elForm'].resetFields();  
146 - if (this.dataForm.id) {  
147 - request({  
148 - url: '/api/Extend/LqXhmxb/' + this.dataForm.id,  
149 - method: 'get'  
150 - }).then(res =>{  
151 - this.dataForm = res.data;  
152 - })  
153 - }  
154 - })  
155 - },  
156 - dataFormSubmit() {  
157 - this.$refs['elForm'].validate((valid) => {  
158 - if (valid) {  
159 - if (!this.dataForm.id) {  
160 - request({  
161 - url: `/api/Extend/LqXhmxb`,  
162 - method: 'post',  
163 - data: this.dataForm,  
164 - }).then((res) => {  
165 - this.$message({  
166 - message: res.msg,  
167 - type: 'success',  
168 - duration: 1000,  
169 - onClose: () => {  
170 - this.visible = false,  
171 - this.$emit('refresh', true)  
172 - }  
173 - })  
174 - })  
175 - } else {  
176 - request({  
177 - url: '/api/Extend/LqXhmxb/' + this.dataForm.id,  
178 - method: 'PUT',  
179 - data: this.dataForm  
180 - }).then((res) => {  
181 - this.$message({  
182 - message: res.msg,  
183 - type: 'success',  
184 - duration: 1000,  
185 - onClose: () => {  
186 - this.visible = false  
187 - this.$emit('refresh', true)  
188 - }  
189 - })  
190 - })  
191 - }  
192 - }  
193 - })  
194 - },  
195 - }  
196 - }  
197 -</script>  
antis-ncc-admin/src/views/lqXhmxb/index.vue deleted
1 -<template>  
2 - <div class="NCC-common-layout">  
3 - <div class="NCC-common-layout-center">  
4 - <el-row class="NCC-common-search-box" :gutter="16">  
5 - <el-form @submit.native.prevent>  
6 - <el-col :span="6">  
7 - <el-form-item label="消耗编号">  
8 - <el-input v-model="query.id" placeholder="消耗编号" clearable />  
9 - </el-form-item>  
10 - </el-col>  
11 - <el-col :span="6">  
12 - <el-form-item label="门店编号">  
13 - <el-input v-model="query.mdbh" placeholder="门店编号" clearable />  
14 - </el-form-item>  
15 - </el-col>  
16 - <el-col :span="6">  
17 - <el-form-item label="门店名称">  
18 - <el-input v-model="query.mdmc" placeholder="门店名称" clearable />  
19 - </el-form-item>  
20 - </el-col>  
21 - <template v-if="showAll">  
22 - <el-col :span="6">  
23 - <el-form-item label="部门编号">  
24 - <el-input v-model="query.bmbh" placeholder="部门编号" clearable />  
25 - </el-form-item>  
26 - </el-col>  
27 - <el-col :span="6">  
28 - <el-form-item label="部门名称">  
29 - <el-input v-model="query.bmmc" placeholder="部门名称" clearable />  
30 - </el-form-item>  
31 - </el-col>  
32 - <el-col :span="6">  
33 - <el-form-item label="员工编号">  
34 - <el-input v-model="query.ygbh" placeholder="员工编号" clearable />  
35 - </el-form-item>  
36 - </el-col>  
37 - <el-col :span="6">  
38 - <el-form-item label="员工名称">  
39 - <el-input v-model="query.ygmc" placeholder="员工名称" clearable />  
40 - </el-form-item>  
41 - </el-col>  
42 - <el-col :span="6">  
43 - <el-form-item label="项目数">  
44 - <el-input v-model="query.xms" placeholder="项目数" clearable />  
45 - </el-form-item>  
46 - </el-col>  
47 - <el-col :span="6">  
48 - <el-form-item label="消耗">  
49 - <el-input v-model="query.xh" placeholder="消耗" clearable />  
50 - </el-form-item>  
51 - </el-col>  
52 - <el-col :span="6">  
53 - <el-form-item label="手工">  
54 - <el-input v-model="query.sg" placeholder="手工" clearable />  
55 - </el-form-item>  
56 - </el-col>  
57 - <el-col :span="6">  
58 - <el-form-item label="其它手工1">  
59 - <el-input v-model="query.qtsg1" placeholder="其它手工1" clearable />  
60 - </el-form-item>  
61 - </el-col>  
62 - <el-col :span="6">  
63 - <el-form-item label="其它手工2">  
64 - <el-input v-model="query.qtsg2" placeholder="其它手工2" clearable />  
65 - </el-form-item>  
66 - </el-col>  
67 - <el-col :span="6">  
68 - <el-form-item label="其它手工3">  
69 - <el-input v-model="query.qtsg3" placeholder="其它手工3" clearable />  
70 - </el-form-item>  
71 - </el-col>  
72 - <el-col :span="6">  
73 - <el-form-item label="手工合计">  
74 - <el-input v-model="query.sghj" placeholder="手工合计" clearable />  
75 - </el-form-item>  
76 - </el-col>  
77 - </template>  
78 - <el-col :span="6">  
79 - <el-form-item>  
80 - <el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>  
81 - <el-button icon="el-icon-refresh-right" @click="reset()">重置</el-button>  
82 - <el-button type="text" icon="el-icon-arrow-down" @click="showAll=true" v-if="!showAll">展开</el-button>  
83 - <el-button type="text" icon="el-icon-arrow-up" @click="showAll=false" v-else>收起</el-button>  
84 - </el-form-item>  
85 - </el-col>  
86 - </el-form>  
87 - </el-row>  
88 - <div class="NCC-common-layout-main NCC-flex-main">  
89 - <div class="NCC-common-head">  
90 - <div>  
91 - <el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">新增</el-button>  
92 - <el-button type="text" icon="el-icon-download" @click="exportData()">导出</el-button>  
93 - <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">批量删除</el-button>  
94 - </div>  
95 - <div class="NCC-common-head-right">  
96 - <el-tooltip effect="dark" content="刷新" placement="top">  
97 - <el-link icon="icon-ym icon-ym-Refresh NCC-common-head-icon" :underline="false" @click="reset()" />  
98 - </el-tooltip>  
99 - <screenfull isContainer />  
100 - </div>  
101 - </div>  
102 - <NCC-table v-loading="listLoading" :data="list" has-c @selection-change="handleSelectionChange">  
103 - <el-table-column prop="id" label="消耗编号" align="left" />  
104 - <el-table-column prop="mdbh" label="门店编号" align="left" />  
105 - <el-table-column prop="mdmc" label="门店名称" align="left" />  
106 - <el-table-column prop="bmbh" label="部门编号" align="left" />  
107 - <el-table-column prop="bmmc" label="部门名称" align="left" />  
108 - <el-table-column prop="ygbh" label="员工编号" align="left" />  
109 - <el-table-column prop="ygmc" label="员工名称" align="left" />  
110 - <el-table-column prop="xms" label="项目数" align="left" />  
111 - <el-table-column prop="xh" label="消耗" align="left" />  
112 - <el-table-column prop="sg" label="手工" align="left" />  
113 - <el-table-column prop="qtsg1" label="其它手工1" align="left" />  
114 - <el-table-column prop="qtsg2" label="其它手工2" align="left" />  
115 - <el-table-column prop="qtsg3" label="其它手工3" align="left" />  
116 - <el-table-column prop="sghj" label="手工合计" align="left" />  
117 - <el-table-column label="操作" fixed="right" width="100">  
118 - <template slot-scope="scope">  
119 - <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" >编辑</el-button>  
120 - <el-button type="text" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button>  
121 - </template>  
122 - </el-table-column>  
123 - </NCC-table>  
124 - <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData" />  
125 - </div>  
126 - </div>  
127 - <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" />  
128 - <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download" />  
129 - </div>  
130 -</template>  
131 -<script>  
132 - import request from '@/utils/request'  
133 - import { getDictionaryDataSelector } from '@/api/systemData/dictionary'  
134 - import NCCForm from './Form'  
135 - import ExportBox from './ExportBox'  
136 - import { previewDataInterface } from '@/api/systemData/dataInterface'  
137 - export default {  
138 - components: { NCCForm, ExportBox },  
139 - data() {  
140 - return {  
141 - showAll: false,  
142 - query: {  
143 - id:undefined,  
144 - mdbh:undefined,  
145 - mdmc:undefined,  
146 - bmbh:undefined,  
147 - bmmc:undefined,  
148 - ygbh:undefined,  
149 - ygmc:undefined,  
150 - xms:undefined,  
151 - xh:undefined,  
152 - sg:undefined,  
153 - qtsg1:undefined,  
154 - qtsg2:undefined,  
155 - qtsg3:undefined,  
156 - sghj:undefined,  
157 - },  
158 - list: [],  
159 - listLoading: true,  
160 - multipleSelection: [], total: 0,  
161 - listQuery: {  
162 - currentPage: 1,  
163 - pageSize: 20,  
164 - sort: "desc",  
165 - sidx: "",  
166 - },  
167 - formVisible: false,  
168 - exportBoxVisible: false,  
169 - columnList: [  
170 - { prop: 'id', label: '消耗编号' },  
171 - { prop: 'mdbh', label: '门店编号' },  
172 - { prop: 'mdmc', label: '门店名称' },  
173 - { prop: 'bmbh', label: '部门编号' },  
174 - { prop: 'bmmc', label: '部门名称' },  
175 - { prop: 'ygbh', label: '员工编号' },  
176 - { prop: 'ygmc', label: '员工名称' },  
177 - { prop: 'xms', label: '项目数' },  
178 - { prop: 'xh', label: '消耗' },  
179 - { prop: 'sg', label: '手工' },  
180 - { prop: 'qtsg1', label: '其它手工1' },  
181 - { prop: 'qtsg2', label: '其它手工2' },  
182 - { prop: 'qtsg3', label: '其它手工3' },  
183 - { prop: 'sghj', label: '手工合计' },  
184 - ],  
185 - }  
186 - },  
187 - computed: {},  
188 - created() {  
189 - this.initData()  
190 - },  
191 - methods: {  
192 - initData() {  
193 - this.listLoading = true;  
194 - let _query = {  
195 - ...this.listQuery,  
196 - ...this.query  
197 - };  
198 - let query = {}  
199 - for (let key in _query) {  
200 - if (Array.isArray(_query[key])) {  
201 - query[key] = _query[key].join()  
202 - } else {  
203 - query[key] = _query[key]  
204 - }  
205 - }  
206 - request({  
207 - url: `/api/Extend/LqXhmxb`,  
208 - method: 'GET',  
209 - data: query  
210 - }).then(res => {  
211 - this.list = res.data.list  
212 - this.total = res.data.pagination.total  
213 - this.listLoading = false  
214 - })  
215 - },  
216 - handleDel(id) {  
217 - this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {  
218 - type: 'warning'  
219 - }).then(() => {  
220 - request({  
221 - url: `/api/Extend/LqXhmxb/${id}`,  
222 - method: 'DELETE'  
223 - }).then(res => {  
224 - this.$message({  
225 - type: 'success',  
226 - message: res.msg,  
227 - onClose: () => {  
228 - this.initData()  
229 - }  
230 - });  
231 - })  
232 - }).catch(() => {  
233 - });  
234 - },  
235 - handleSelectionChange(val) {  
236 - const res = val.map(item => item.id)  
237 - this.multipleSelection = res  
238 - },  
239 - handleBatchRemoveDel() {  
240 - if (!this.multipleSelection.length) {  
241 - this.$message({  
242 - type: 'error',  
243 - message: '请选择一条数据',  
244 - duration: 1500,  
245 - })  
246 - return  
247 - }  
248 - const ids = this.multipleSelection  
249 - this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {  
250 - type: 'warning'  
251 - }).then(() => {  
252 - request({  
253 - url: `/api/Extend/LqXhmxb/batchRemove`,  
254 - method: 'POST',  
255 - data: ids ,  
256 - }).then(res => {  
257 - this.$message({  
258 - type: 'success',  
259 - message: res.msg,  
260 - onClose: () => {  
261 - this.initData()  
262 - }  
263 - });  
264 - })  
265 - }).catch(() => { })  
266 - },  
267 - addOrUpdateHandle(id, isDetail) {  
268 - this.formVisible = true  
269 - this.$nextTick(() => {  
270 - this.$refs.NCCForm.init(id, isDetail)  
271 - })  
272 - },  
273 - exportData() {  
274 - this.exportBoxVisible = true  
275 - this.$nextTick(() => {  
276 - this.$refs.ExportBox.init(this.columnList)  
277 - })  
278 - },  
279 - download(data) {  
280 - let query = { ...data, ...this.listQuery, ...this.query }  
281 - request({  
282 - url: `/api/Extend/LqXhmxb/Actions/Export`,  
283 - method: 'GET',  
284 - data: query  
285 - }).then(res => {  
286 - if (!res.data.url) return  
287 - window.location.href = this.define.comUrl + res.data.url  
288 - this.$refs.ExportBox.visible = false  
289 - this.exportBoxVisible = false  
290 - })  
291 - },  
292 - search() {  
293 - this.listQuery = {  
294 - currentPage: 1,  
295 - pageSize: 20,  
296 - sort: "desc",  
297 - sidx: "",  
298 - }  
299 - this.initData()  
300 - },  
301 - refresh(isrRefresh) {  
302 - this.formVisible = false  
303 - if (isrRefresh) this.reset()  
304 - },  
305 - reset() {  
306 - for (let key in this.query) {  
307 - this.query[key] = undefined  
308 - }  
309 - this.listQuery = {  
310 - currentPage: 1,  
311 - pageSize: 20,  
312 - sort: "desc",  
313 - sidx: "",  
314 - }  
315 - this.initData()  
316 - }  
317 - }  
318 - }  
319 -</script>  
320 \ No newline at end of file 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoInfoOutput.cs
@@ -10,57 +10,62 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo @@ -10,57 +10,62 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo
10 /// <summary> 10 /// <summary>
11 /// 主键 11 /// 主键
12 /// </summary> 12 /// </summary>
13 - public string Id { get; set; } 13 + public string id { get; set; }
14 14
15 /// <summary> 15 /// <summary>
16 /// 扣减类型 16 /// 扣减类型
17 /// </summary> 17 /// </summary>
18 - public string DeductType { get; set; } 18 + public string deductType { get; set; }
19 19
20 /// <summary> 20 /// <summary>
21 /// 扣减类型名称 21 /// 扣减类型名称
22 /// </summary> 22 /// </summary>
23 - public string DeductTypeName { get; set; } 23 + public string deductTypeName { get; set; }
24 24
25 /// <summary> 25 /// <summary>
26 /// 扣减关联ID 26 /// 扣减关联ID
27 /// </summary> 27 /// </summary>
28 - public string DeductId { get; set; } 28 + public string deductId { get; set; }
29 29
30 /// <summary> 30 /// <summary>
31 /// 开单id 31 /// 开单id
32 /// </summary> 32 /// </summary>
33 - public string BillingId { get; set; } 33 + public string billingId { get; set; }
34 34
35 /// <summary> 35 /// <summary>
36 /// 合计金额 36 /// 合计金额
37 /// </summary> 37 /// </summary>
38 - public decimal? Amount { get; set; } 38 + public decimal? amount { get; set; }
39 39
40 /// <summary> 40 /// <summary>
41 /// 是否有效 41 /// 是否有效
42 /// </summary> 42 /// </summary>
43 - public int? IsEffective { get; set; } 43 + public int? isEffective { get; set; }
44 44
45 /// <summary> 45 /// <summary>
46 /// 单价 46 /// 单价
47 /// </summary> 47 /// </summary>
48 - public decimal? UnitPrice { get; set; } 48 + public decimal? unitPrice { get; set; }
49 49
50 /// <summary> 50 /// <summary>
51 /// 品项名称 51 /// 品项名称
52 /// </summary> 52 /// </summary>
53 - public string ItemName { get; set; } 53 + public string itemName { get; set; }
54 54
55 /// <summary> 55 /// <summary>
56 /// 品项id 56 /// 品项id
57 /// </summary> 57 /// </summary>
58 - public string ItemId { get; set; } 58 + public string itemId { get; set; }
  59 +
  60 + /// <summary>
  61 + /// 项目数量
  62 + /// </summary>
  63 + public decimal? projectNumber { get; set; }
59 64
60 /// <summary> 65 /// <summary>
61 /// 创建时间 66 /// 创建时间
62 /// </summary> 67 /// </summary>
63 - public DateTime? CreateTime { get; set; } 68 + public DateTime? createTime { get; set; }
64 69
65 } 70 }
66 } 71 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/DebtPaymentRecordOutput.cs deleted
1 -using System;  
2 -using System.ComponentModel.DataAnnotations;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqKdKdjlb  
5 -{  
6 - /// <summary>  
7 - /// 补缴欠款记录输出  
8 - /// </summary>  
9 - public class DebtPaymentRecordOutput  
10 - {  
11 - /// <summary>  
12 - /// 补缴记录ID  
13 - /// </summary>  
14 - [Display(Name = "补缴记录ID", Description = "补缴欠款记录的唯一标识")]  
15 - public string Id { get; set; }  
16 -  
17 - /// <summary>  
18 - /// 开单记录ID  
19 - /// </summary>  
20 - [Display(Name = "开单记录ID", Description = "关联的开单记录ID")]  
21 - public string BillingId { get; set; }  
22 -  
23 - /// <summary>  
24 - /// 补缴金额  
25 - /// </summary>  
26 - [Display(Name = "补缴金额", Description = "客户补缴的欠款金额")]  
27 - public decimal PaymentAmount { get; set; }  
28 -  
29 - /// <summary>  
30 - /// 付款方式  
31 - /// </summary>  
32 - [Display(Name = "付款方式", Description = "客户付款的方式")]  
33 - public string PaymentMethod { get; set; }  
34 -  
35 - /// <summary>  
36 - /// 付款日期  
37 - /// </summary>  
38 - [Display(Name = "付款日期", Description = "客户实际付款的日期")]  
39 - public DateTime PaymentDate { get; set; }  
40 -  
41 - /// <summary>  
42 - /// 收款人员  
43 - /// </summary>  
44 - [Display(Name = "收款人员", Description = "负责收款的工作人员")]  
45 - public string PaymentUser { get; set; }  
46 -  
47 - /// <summary>  
48 - /// 备注  
49 - /// </summary>  
50 - [Display(Name = "备注", Description = "补缴欠款的备注信息")]  
51 - public string Remarks { get; set; }  
52 -  
53 - /// <summary>  
54 - /// 创建时间  
55 - /// </summary>  
56 - [Display(Name = "创建时间", Description = "补缴记录的创建时间")]  
57 - public DateTime CreateTime { get; set; }  
58 - }  
59 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjUpInput.cs renamed to netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/DebtRecordQueryInput.cs
1 -using System;  
2 using System.ComponentModel.DataAnnotations; 1 using System.ComponentModel.DataAnnotations;
  2 +using NCC.Common.Filter;
3 3
4 -namespace NCC.Extend.Entitys.Dto.LqKdQkbj 4 +namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
5 { 5 {
6 /// <summary> 6 /// <summary>
7 - /// 开单欠款补缴记录更新输入 7 + /// 门店欠款记录查询输入
8 /// </summary> 8 /// </summary>
9 - public class LqKdQkbjUpInput : LqKdQkbjCrInput 9 + public class DebtRecordQueryInput : PageInputBase
10 { 10 {
11 /// <summary> 11 /// <summary>
12 - /// 主键 12 + /// 门店ID
13 /// </summary> 13 /// </summary>
14 - [Required(ErrorMessage = "主键不能为空")]  
15 - public string Id { get; set; } 14 + [Required(ErrorMessage = "门店ID不能为空")]
  15 + [Display(Name = "门店ID", Description = "查询欠款记录的门店ID")]
  16 + public string StoreId { get; set; }
16 } 17 }
17 } 18 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs
@@ -161,6 +161,16 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -161,6 +161,16 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
161 public string cancelRefRemarks { get; set; } 161 public string cancelRefRemarks { get; set; }
162 162
163 /// <summary> 163 /// <summary>
  164 + /// 补缴开单ID
  165 + /// </summary>
  166 + public string supplementBillingId { get; set; }
  167 +
  168 + /// <summary>
  169 + /// 补缴金额
  170 + /// </summary>
  171 + public decimal supplementAmount { get; set; }
  172 +
  173 + /// <summary>
164 /// 扣款信息 174 /// 扣款信息
165 /// </summary> 175 /// </summary>
166 public List<LqKdDeductinfoCrInput> lqKdKdjlbDeductList { get; set; } 176 public List<LqKdDeductinfoCrInput> lqKdKdjlbDeductList { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs
@@ -157,6 +157,27 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -157,6 +157,27 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
157 public int IsEffective { get; set; } 157 public int IsEffective { get; set; }
158 158
159 /// <summary> 159 /// <summary>
  160 + /// 补缴开单ID
  161 + /// </summary>
  162 + public string SupplementBillingId { get; set; }
  163 +
  164 + /// <summary>
  165 + /// 补缴金额
  166 + /// </summary>
  167 + public decimal SupplementAmount { get; set; }
  168 +
  169 + /// <summary>
  170 + /// 已缴欠款
  171 + /// </summary>
  172 + public decimal PaidDebt { get; set; }
  173 +
  174 +
  175 + /// <summary>
  176 + /// 作废关联备注
  177 + /// </summary>
  178 + public string CancelRefRemarks { get; set; }
  179 +
  180 + /// <summary>
160 /// 健康师业绩 181 /// 健康师业绩
161 /// </summary> 182 /// </summary>
162 public List<LqKdJksyjInfoOutput> lqKdJksyjList { get; set; } 183 public List<LqKdJksyjInfoOutput> lqKdJksyjList { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs
@@ -53,6 +53,11 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -53,6 +53,11 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
53 public decimal qk { get; set; } 53 public decimal qk { get; set; }
54 54
55 /// <summary> 55 /// <summary>
  56 + /// 已缴欠款
  57 + /// </summary>
  58 + public decimal PaidDebt { get; set; }
  59 +
  60 + /// <summary>
56 /// 储扣方式 61 /// 储扣方式
57 /// </summary> 62 /// </summary>
58 public string ckfs { get; set; } 63 public string ckfs { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/PayDebtInput.cs deleted
1 -using System;  
2 -using System.ComponentModel.DataAnnotations;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqKdKdjlb  
5 -{  
6 - /// <summary>  
7 - /// 补缴欠款输入  
8 - /// </summary>  
9 - public class PayDebtInput  
10 - {  
11 - /// <summary>  
12 - /// 开单记录ID  
13 - /// </summary>  
14 - [Required(ErrorMessage = "开单记录ID不能为空")]  
15 - [Display(Name = "开单记录ID", Description = "需要补缴欠款的开单记录ID")]  
16 - public string BillingId { get; set; }  
17 -  
18 - /// <summary>  
19 - /// 补缴金额  
20 - /// </summary>  
21 - [Required(ErrorMessage = "补缴金额不能为空")]  
22 - [Range(0.01, double.MaxValue, ErrorMessage = "补缴金额必须大于0")]  
23 - [Display(Name = "补缴金额", Description = "客户补缴的欠款金额")]  
24 - public decimal PaymentAmount { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 付款方式  
28 - /// </summary>  
29 - [Display(Name = "付款方式", Description = "客户付款的方式(现金、刷卡、转账等)")]  
30 - public string PaymentMethod { get; set; }  
31 -  
32 - /// <summary>  
33 - /// 付款日期  
34 - /// </summary>  
35 - [Display(Name = "付款日期", Description = "客户实际付款的日期")]  
36 - public DateTime? PaymentDate { get; set; }  
37 -  
38 - /// <summary>  
39 - /// 收款人员  
40 - /// </summary>  
41 - [Display(Name = "收款人员", Description = "负责收款的工作人员")]  
42 - public string PaymentUser { get; set; }  
43 -  
44 - /// <summary>  
45 - /// 备注  
46 - /// </summary>  
47 - [Display(Name = "备注", Description = "补缴欠款的备注信息")]  
48 - public string Remarks { get; set; }  
49 - }  
50 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdPxmx/LqKdPxmxInfoOutput.cs
@@ -78,7 +78,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb @@ -78,7 +78,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
78 /// <summary> 78 /// <summary>
79 /// 是否有效 79 /// 是否有效
80 /// </summary> 80 /// </summary>
81 - public int IsEffective { get; set; } 81 + public int isEffective { get; set; }
82 82
83 /// <summary> 83 /// <summary>
84 /// 健康师业绩列表 84 /// 健康师业绩列表
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjCrInput.cs deleted
1 -using System;  
2 -using System.ComponentModel.DataAnnotations;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqKdQkbj  
5 -{  
6 - /// <summary>  
7 - /// 开单欠款补缴记录创建输入  
8 - /// </summary>  
9 - public class LqKdQkbjCrInput  
10 - {  
11 - /// <summary>  
12 - /// 开单ID  
13 - /// </summary>  
14 - [Required(ErrorMessage = "开单ID不能为空")]  
15 - public string BillingId { get; set; }  
16 -  
17 - /// <summary>  
18 - /// 补缴金额  
19 - /// </summary>  
20 - [Required(ErrorMessage = "补缴金额不能为空")]  
21 - [Range(0.01, 999999.99, ErrorMessage = "补缴金额必须在0.01到999999.99之间")]  
22 - public decimal PaymentAmount { get; set; }  
23 -  
24 - /// <summary>  
25 - /// 补缴方式  
26 - /// </summary>  
27 - [Required(ErrorMessage = "补缴方式不能为空")]  
28 - public string PaymentMethod { get; set; }  
29 -  
30 - /// <summary>  
31 - /// 补缴时间  
32 - /// </summary>  
33 - [Required(ErrorMessage = "补缴时间不能为空")]  
34 - public DateTime PaymentTime { get; set; }  
35 -  
36 - /// <summary>  
37 - /// 补缴操作人  
38 - /// </summary>  
39 - public string PaymentUser { get; set; }  
40 -  
41 - /// <summary>  
42 - /// 补缴账户  
43 - /// </summary>  
44 - public string PaymentAccount { get; set; }  
45 -  
46 - /// <summary>  
47 - /// 补缴凭证号  
48 - /// </summary>  
49 - public string PaymentReference { get; set; }  
50 -  
51 - /// <summary>  
52 - /// 补缴备注  
53 - /// </summary>  
54 - [StringLength(500, ErrorMessage = "补缴备注不能超过500个字符")]  
55 - public string Remark { get; set; }  
56 - }  
57 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjInfoOutput.cs deleted
1 -using System;  
2 -  
3 -namespace NCC.Extend.Entitys.Dto.LqKdQkbj  
4 -{  
5 - /// <summary>  
6 - /// 开单欠款补缴记录详情输出  
7 - /// </summary>  
8 - public class LqKdQkbjInfoOutput  
9 - {  
10 - /// <summary>  
11 - /// 主键  
12 - /// </summary>  
13 - public string Id { get; set; }  
14 -  
15 - /// <summary>  
16 - /// 开单ID  
17 - /// </summary>  
18 - public string BillingId { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 补缴金额  
22 - /// </summary>  
23 - public decimal PaymentAmount { get; set; }  
24 -  
25 - /// <summary>  
26 - /// 补缴方式  
27 - /// </summary>  
28 - public string PaymentMethod { get; set; }  
29 -  
30 - /// <summary>  
31 - /// 补缴方式名称  
32 - /// </summary>  
33 - public string PaymentMethodName { get; set; }  
34 -  
35 - /// <summary>  
36 - /// 补缴时间  
37 - /// </summary>  
38 - public DateTime PaymentTime { get; set; }  
39 -  
40 - /// <summary>  
41 - /// 补缴操作人  
42 - /// </summary>  
43 - public string PaymentUser { get; set; }  
44 -  
45 - /// <summary>  
46 - /// 补缴操作人姓名  
47 - /// </summary>  
48 - public string PaymentUserName { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 补缴账户  
52 - /// </summary>  
53 - public string PaymentAccount { get; set; }  
54 -  
55 - /// <summary>  
56 - /// 补缴凭证号  
57 - /// </summary>  
58 - public string PaymentReference { get; set; }  
59 -  
60 - /// <summary>  
61 - /// 补缴备注  
62 - /// </summary>  
63 - public string Remark { get; set; }  
64 -  
65 - /// <summary>  
66 - /// 创建时间  
67 - /// </summary>  
68 - public DateTime CreateTime { get; set; }  
69 -  
70 - /// <summary>  
71 - /// 更新时间  
72 - /// </summary>  
73 - public DateTime UpdateTime { get; set; }  
74 -  
75 - /// <summary>  
76 - /// 是否有效  
77 - /// </summary>  
78 - public int IsEffective { get; set; }  
79 - }  
80 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjListOutput.cs deleted
1 -using System;  
2 -  
3 -namespace NCC.Extend.Entitys.Dto.LqKdQkbj  
4 -{  
5 - /// <summary>  
6 - /// 开单欠款补缴记录列表输出  
7 - /// </summary>  
8 - public class LqKdQkbjListOutput  
9 - {  
10 - /// <summary>  
11 - /// 主键  
12 - /// </summary>  
13 - public string Id { get; set; }  
14 -  
15 - /// <summary>  
16 - /// 开单ID  
17 - /// </summary>  
18 - public string BillingId { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 补缴金额  
22 - /// </summary>  
23 - public decimal PaymentAmount { get; set; }  
24 -  
25 - /// <summary>  
26 - /// 补缴方式  
27 - /// </summary>  
28 - public string PaymentMethod { get; set; }  
29 -  
30 - /// <summary>  
31 - /// 补缴方式名称  
32 - /// </summary>  
33 - public string PaymentMethodName { get; set; }  
34 -  
35 - /// <summary>  
36 - /// 补缴时间  
37 - /// </summary>  
38 - public DateTime PaymentTime { get; set; }  
39 -  
40 - /// <summary>  
41 - /// 补缴操作人  
42 - /// </summary>  
43 - public string PaymentUser { get; set; }  
44 -  
45 - /// <summary>  
46 - /// 补缴操作人姓名  
47 - /// </summary>  
48 - public string PaymentUserName { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 补缴账户  
52 - /// </summary>  
53 - public string PaymentAccount { get; set; }  
54 -  
55 - /// <summary>  
56 - /// 补缴凭证号  
57 - /// </summary>  
58 - public string PaymentReference { get; set; }  
59 -  
60 - /// <summary>  
61 - /// 补缴备注  
62 - /// </summary>  
63 - public string Remark { get; set; }  
64 -  
65 - /// <summary>  
66 - /// 创建时间  
67 - /// </summary>  
68 - public DateTime CreateTime { get; set; }  
69 -  
70 - /// <summary>  
71 - /// 是否有效  
72 - /// </summary>  
73 - public int IsEffective { get; set; }  
74 - }  
75 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjListQueryInput.cs deleted
1 -using System;  
2 -  
3 -namespace NCC.Extend.Entitys.Dto.LqKdQkbj  
4 -{  
5 - /// <summary>  
6 - /// 开单欠款补缴记录列表查询输入  
7 - /// </summary>  
8 - public class LqKdQkbjListQueryInput  
9 - {  
10 - /// <summary>  
11 - /// 开单ID  
12 - /// </summary>  
13 - public string BillingId { get; set; }  
14 -  
15 - /// <summary>  
16 - /// 补缴方式  
17 - /// </summary>  
18 - public string PaymentMethod { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 补缴操作人  
22 - /// </summary>  
23 - public string PaymentUser { get; set; }  
24 -  
25 - /// <summary>  
26 - /// 最小补缴金额  
27 - /// </summary>  
28 - public decimal? MinPaymentAmount { get; set; }  
29 -  
30 - /// <summary>  
31 - /// 最大补缴金额  
32 - /// </summary>  
33 - public decimal? MaxPaymentAmount { get; set; }  
34 -  
35 - /// <summary>  
36 - /// 开始补缴时间  
37 - /// </summary>  
38 - public DateTime? StartPaymentTime { get; set; }  
39 -  
40 - /// <summary>  
41 - /// 结束补缴时间  
42 - /// </summary>  
43 - public DateTime? EndPaymentTime { get; set; }  
44 -  
45 - /// <summary>  
46 - /// 是否有效  
47 - /// </summary>  
48 - public int? IsEffective { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 补缴凭证号  
52 - /// </summary>  
53 - public string PaymentReference { get; set; }  
54 - }  
55 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbInfoOutput.cs
@@ -82,5 +82,10 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb @@ -82,5 +82,10 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
82 /// 拓客活动名称 82 /// 拓客活动名称
83 /// </summary> 83 /// </summary>
84 public string eventName { get; set; } 84 public string eventName { get; set; }
  85 +
  86 + /// <summary>
  87 + /// 是否有效
  88 + /// </summary>
  89 + public int isEffective { get; set; }
85 } 90 }
86 } 91 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqTkjlb/LqTkjlbListOutput.cs
@@ -92,5 +92,10 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb @@ -92,5 +92,10 @@ namespace NCC.Extend.Entitys.Dto.LqTkjlb
92 /// 拓客活动名称 92 /// 拓客活动名称
93 /// </summary> 93 /// </summary>
94 public string eventName { get; set; } 94 public string eventName { get; set; }
  95 +
  96 + /// <summary>
  97 + /// 是否有效
  98 + /// </summary>
  99 + public int isEffective { get; set; }
95 } 100 }
96 } 101 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkMemberCardUsageOutput.cs 0 → 100644
  1 +using System;
  2 +using System.Collections.Generic;
  3 +
  4 +namespace NCC.Extend.Entitys.Dto.LqXhHyhk
  5 +{
  6 + /// <summary>
  7 + /// 会员耗卡记录输出
  8 + /// </summary>
  9 + public class LqXhHyhkMemberCardUsageOutput
  10 + {
  11 + /// <summary>
  12 + /// 耗卡记录ID
  13 + /// </summary>
  14 + public string Id { get; set; }
  15 +
  16 + /// <summary>
  17 + /// 会员ID
  18 + /// </summary>
  19 + public string MemberId { get; set; }
  20 +
  21 + /// <summary>
  22 + /// 会员姓名
  23 + /// </summary>
  24 + public string MemberName { get; set; }
  25 +
  26 + /// <summary>
  27 + /// 门店ID
  28 + /// </summary>
  29 + public string StoreId { get; set; }
  30 +
  31 + /// <summary>
  32 + /// 门店名称
  33 + /// </summary>
  34 + public string StoreName { get; set; }
  35 +
  36 + /// <summary>
  37 + /// 耗卡时间
  38 + /// </summary>
  39 + public DateTime? UsageDate { get; set; }
  40 +
  41 + /// <summary>
  42 + /// 消费金额
  43 + /// </summary>
  44 + public decimal? TotalAmount { get; set; }
  45 +
  46 + /// <summary>
  47 + /// 备注
  48 + /// </summary>
  49 + public string Remarks { get; set; }
  50 +
  51 + /// <summary>
  52 + /// 创建时间
  53 + /// </summary>
  54 + public DateTime? CreateTime { get; set; }
  55 +
  56 + /// <summary>
  57 + /// 品项明细列表
  58 + /// </summary>
  59 + public List<LqXhHyhkMemberCardUsageItemDetail> ItemDetails { get; set; } = new List<LqXhHyhkMemberCardUsageItemDetail>();
  60 + }
  61 +
  62 + /// <summary>
  63 + /// 会员耗卡记录品项明细
  64 + /// </summary>
  65 + public class LqXhHyhkMemberCardUsageItemDetail
  66 + {
  67 + /// <summary>
  68 + /// 明细ID
  69 + /// </summary>
  70 + public string Id { get; set; }
  71 +
  72 + /// <summary>
  73 + /// 品项ID
  74 + /// </summary>
  75 + public string ItemId { get; set; }
  76 +
  77 + /// <summary>
  78 + /// 品项名称
  79 + /// </summary>
  80 + public string ItemName { get; set; }
  81 +
  82 + /// <summary>
  83 + /// 单价
  84 + /// </summary>
  85 + public decimal? UnitPrice { get; set; }
  86 +
  87 + /// <summary>
  88 + /// 项目次数
  89 + /// </summary>
  90 + public int? ProjectNumber { get; set; }
  91 +
  92 + /// <summary>
  93 + /// 合计金额
  94 + /// </summary>
  95 + public decimal? TotalPrice { get; set; }
  96 +
  97 + /// <summary>
  98 + /// 来源类型
  99 + /// </summary>
  100 + public string SourceType { get; set; }
  101 +
  102 + /// <summary>
  103 + /// 创建时间
  104 + /// </summary>
  105 + public DateTime? CreateTime { get; set; }
  106 + }
  107 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkMemberCardUsageQueryInput.cs 0 → 100644
  1 +using NCC.Common.Filter;
  2 +using System.ComponentModel.DataAnnotations;
  3 +
  4 +namespace NCC.Extend.Entitys.Dto.LqXhHyhk
  5 +{
  6 + /// <summary>
  7 + /// 会员耗卡记录查询输入
  8 + /// </summary>
  9 + public class LqXhHyhkMemberCardUsageQueryInput : PageInputBase
  10 + {
  11 + /// <summary>
  12 + /// 会员ID
  13 + /// </summary>
  14 + [Required(ErrorMessage = "会员ID不能为空")]
  15 + public string MemberId { get; set; }
  16 +
  17 + /// <summary>
  18 + /// 门店ID
  19 + /// </summary>
  20 + public string StoreId { get; set; }
  21 +
  22 + /// <summary>
  23 + /// 开始时间
  24 + /// </summary>
  25 + public System.DateTime? StartTime { get; set; }
  26 +
  27 + /// <summary>
  28 + /// 结束时间
  29 + /// </summary>
  30 + public System.DateTime? EndTime { get; set; }
  31 + }
  32 +}
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/DebtPaymentQueryInput.cs renamed to netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhJksyjQueryInput.cs
@@ -2,35 +2,35 @@ using System; @@ -2,35 +2,35 @@ using System;
2 using System.ComponentModel.DataAnnotations; 2 using System.ComponentModel.DataAnnotations;
3 using NCC.Common.Filter; 3 using NCC.Common.Filter;
4 4
5 -namespace NCC.Extend.Entitys.Dto.LqKdKdjlb 5 +namespace NCC.Extend.Entitys.Dto.LqXhHyhk
6 { 6 {
7 /// <summary> 7 /// <summary>
8 - /// 补缴欠款记录查询输入 8 + /// 健康师业绩查询输入
9 /// </summary> 9 /// </summary>
10 - public class DebtPaymentQueryInput : PageInputBase 10 + public class LqXhJksyjQueryInput : PageInputBase
11 { 11 {
12 /// <summary> 12 /// <summary>
13 /// 开单记录ID 13 /// 开单记录ID
14 /// </summary> 14 /// </summary>
15 - [Display(Name = "开单记录ID", Description = "开单记录ID")]  
16 - public string BillingId { get; set; } 15 + [Display(Name = "开单记录ID", Description = "关联的开单记录ID")]
  16 + public string Glkdbh { get; set; }
17 17
18 /// <summary> 18 /// <summary>
19 - /// 付款日期开始 19 + /// 健康师ID
20 /// </summary> 20 /// </summary>
21 - [Display(Name = "付款日期开始", Description = "付款日期范围开始")]  
22 - public DateTime? PaymentDateStart { get; set; } 21 + [Display(Name = "健康师ID", Description = "健康师用户ID,可选")]
  22 + public string JksId { get; set; }
23 23
24 /// <summary> 24 /// <summary>
25 - /// 付款日期结束 25 + /// 开始时间
26 /// </summary> 26 /// </summary>
27 - [Display(Name = "付款日期结束", Description = "付款日期范围结束")]  
28 - public DateTime? PaymentDateEnd { get; set; } 27 + [Display(Name = "开始时间", Description = "查询开始时间")]
  28 + public DateTime? StartTime { get; set; }
29 29
30 /// <summary> 30 /// <summary>
31 - /// 收款人员 31 + /// 结束时间
32 /// </summary> 32 /// </summary>
33 - [Display(Name = "收款人员", Description = "收款人员")]  
34 - public string PaymentUser { get; set; } 33 + [Display(Name = "结束时间", Description = "查询结束时间")]
  34 + public DateTime? EndTime { get; set; }
35 } 35 }
36 } 36 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhJksyj/LqXhJksyjInfoOutput.cs
@@ -11,27 +11,27 @@ namespace NCC.Extend.Entitys.Dto.LqXhJksyj @@ -11,27 +11,27 @@ namespace NCC.Extend.Entitys.Dto.LqXhJksyj
11 /// 业绩编号 11 /// 业绩编号
12 /// </summary> 12 /// </summary>
13 public string id { get; set; } 13 public string id { get; set; }
14 - 14 +
15 /// <summary> 15 /// <summary>
16 /// 关联开单编号 16 /// 关联开单编号
17 /// </summary> 17 /// </summary>
18 public string glkdbh { get; set; } 18 public string glkdbh { get; set; }
19 - 19 +
20 /// <summary> 20 /// <summary>
21 /// 健康师 21 /// 健康师
22 /// </summary> 22 /// </summary>
23 public string jks { get; set; } 23 public string jks { get; set; }
24 - 24 +
25 /// <summary> 25 /// <summary>
26 /// 健康师姓名 26 /// 健康师姓名
27 /// </summary> 27 /// </summary>
28 public string jksxm { get; set; } 28 public string jksxm { get; set; }
29 - 29 +
30 /// <summary> 30 /// <summary>
31 /// 健康师账号 31 /// 健康师账号
32 /// </summary> 32 /// </summary>
33 public string jkszh { get; set; } 33 public string jkszh { get; set; }
34 - 34 +
35 /// <summary> 35 /// <summary>
36 /// 健康师业绩 36 /// 健康师业绩
37 /// </summary> 37 /// </summary>
@@ -43,6 +43,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhJksyj @@ -43,6 +43,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhJksyj
43 public DateTime? yjsj { get; set; } 43 public DateTime? yjsj { get; set; }
44 44
45 /// <summary> 45 /// <summary>
  46 + /// 门店
  47 + /// </summary>
  48 + public string storeName { get; set; }
  49 +
  50 + /// <summary>
46 /// 金三角id 51 /// 金三角id
47 /// </summary> 52 /// </summary>
48 public string jsjId { get; set; } 53 public string jsjId { get; set; }
@@ -61,5 +66,16 @@ namespace NCC.Extend.Entitys.Dto.LqXhJksyj @@ -61,5 +66,16 @@ namespace NCC.Extend.Entitys.Dto.LqXhJksyj
61 /// 耗卡品项次数 66 /// 耗卡品项次数
62 /// </summary> 67 /// </summary>
63 public decimal? kdpxNumber { get; set; } 68 public decimal? kdpxNumber { get; set; }
  69 +
  70 + /// <summary>
  71 + /// 会员id
  72 + /// </summary>
  73 + public string memberId { get; set; }
  74 +
  75 +
  76 + /// <summary>
  77 + /// 会员名称
  78 + /// </summary>
  79 + public string memberName { get; set; }
64 } 80 }
65 } 81 }
66 \ No newline at end of file 82 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhmxb/LqXhmxbCrInput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqXhmxb  
5 -{  
6 - /// <summary>  
7 - /// 消耗明细表修改输入参数  
8 - /// </summary>  
9 - public class LqXhmxbCrInput  
10 - {  
11 - /// <summary>  
12 - /// 消耗编号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - /// <summary>  
17 - /// 门店编号  
18 - /// </summary>  
19 - public string mdbh { get; set; }  
20 -  
21 - /// <summary>  
22 - /// 门店名称  
23 - /// </summary>  
24 - public string mdmc { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 部门编号  
28 - /// </summary>  
29 - public string bmbh { get; set; }  
30 -  
31 - /// <summary>  
32 - /// 部门名称  
33 - /// </summary>  
34 - public string bmmc { get; set; }  
35 -  
36 - /// <summary>  
37 - /// 员工编号  
38 - /// </summary>  
39 - public string ygbh { get; set; }  
40 -  
41 - /// <summary>  
42 - /// 员工名称  
43 - /// </summary>  
44 - public string ygmc { get; set; }  
45 -  
46 - /// <summary>  
47 - /// 项目数  
48 - /// </summary>  
49 - public string xms { get; set; }  
50 -  
51 - /// <summary>  
52 - /// 消耗  
53 - /// </summary>  
54 - public string xh { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 手工  
58 - /// </summary>  
59 - public string sg { get; set; }  
60 -  
61 - /// <summary>  
62 - /// 其它手工1  
63 - /// </summary>  
64 - public string qtsg1 { get; set; }  
65 -  
66 - /// <summary>  
67 - /// 其它手工2  
68 - /// </summary>  
69 - public string qtsg2 { get; set; }  
70 -  
71 - /// <summary>  
72 - /// 其它手工3  
73 - /// </summary>  
74 - public string qtsg3 { get; set; }  
75 -  
76 - /// <summary>  
77 - /// 手工合计  
78 - /// </summary>  
79 - public string sghj { get; set; }  
80 -  
81 - }  
82 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhmxb/LqXhmxbInfoOutput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqXhmxb  
5 -{  
6 - /// <summary>  
7 - /// 消耗明细表输出参数  
8 - /// </summary>  
9 - public class LqXhmxbInfoOutput  
10 - {  
11 - /// <summary>  
12 - /// 消耗编号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - /// <summary>  
17 - /// 门店编号  
18 - /// </summary>  
19 - public string mdbh { get; set; }  
20 -  
21 - /// <summary>  
22 - /// 门店名称  
23 - /// </summary>  
24 - public string mdmc { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 部门编号  
28 - /// </summary>  
29 - public string bmbh { get; set; }  
30 -  
31 - /// <summary>  
32 - /// 部门名称  
33 - /// </summary>  
34 - public string bmmc { get; set; }  
35 -  
36 - /// <summary>  
37 - /// 员工编号  
38 - /// </summary>  
39 - public string ygbh { get; set; }  
40 -  
41 - /// <summary>  
42 - /// 员工名称  
43 - /// </summary>  
44 - public string ygmc { get; set; }  
45 -  
46 - /// <summary>  
47 - /// 项目数  
48 - /// </summary>  
49 - public string xms { get; set; }  
50 -  
51 - /// <summary>  
52 - /// 消耗  
53 - /// </summary>  
54 - public string xh { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 手工  
58 - /// </summary>  
59 - public string sg { get; set; }  
60 -  
61 - /// <summary>  
62 - /// 其它手工1  
63 - /// </summary>  
64 - public string qtsg1 { get; set; }  
65 -  
66 - /// <summary>  
67 - /// 其它手工2  
68 - /// </summary>  
69 - public string qtsg2 { get; set; }  
70 -  
71 - /// <summary>  
72 - /// 其它手工3  
73 - /// </summary>  
74 - public string qtsg3 { get; set; }  
75 -  
76 - /// <summary>  
77 - /// 手工合计  
78 - /// </summary>  
79 - public string sghj { get; set; }  
80 -  
81 - }  
82 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhmxb/LqXhmxbListOutput.cs deleted
1 -using System;  
2 -  
3 -namespace NCC.Extend.Entitys.Dto.LqXhmxb  
4 -{  
5 - /// <summary>  
6 - /// 消耗明细表输入参数  
7 - /// </summary>  
8 - public class LqXhmxbListOutput  
9 - {  
10 - /// <summary>  
11 - /// 消耗编号  
12 - /// </summary>  
13 - public string id { get; set; }  
14 -  
15 - /// <summary>  
16 - /// 门店编号  
17 - /// </summary>  
18 - public string mdbh { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 门店名称  
22 - /// </summary>  
23 - public string mdmc { get; set; }  
24 -  
25 - /// <summary>  
26 - /// 部门编号  
27 - /// </summary>  
28 - public string bmbh { get; set; }  
29 -  
30 - /// <summary>  
31 - /// 部门名称  
32 - /// </summary>  
33 - public string bmmc { get; set; }  
34 -  
35 - /// <summary>  
36 - /// 员工编号  
37 - /// </summary>  
38 - public string ygbh { get; set; }  
39 -  
40 - /// <summary>  
41 - /// 员工名称  
42 - /// </summary>  
43 - public string ygmc { get; set; }  
44 -  
45 - /// <summary>  
46 - /// 项目数  
47 - /// </summary>  
48 - public string xms { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 消耗  
52 - /// </summary>  
53 - public string xh { get; set; }  
54 -  
55 - /// <summary>  
56 - /// 手工  
57 - /// </summary>  
58 - public string sg { get; set; }  
59 -  
60 - /// <summary>  
61 - /// 其它手工1  
62 - /// </summary>  
63 - public string qtsg1 { get; set; }  
64 -  
65 - /// <summary>  
66 - /// 其它手工2  
67 - /// </summary>  
68 - public string qtsg2 { get; set; }  
69 -  
70 - /// <summary>  
71 - /// 其它手工3  
72 - /// </summary>  
73 - public string qtsg3 { get; set; }  
74 -  
75 - /// <summary>  
76 - /// 手工合计  
77 - /// </summary>  
78 - public string sghj { get; set; }  
79 -  
80 - }  
81 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhmxb/LqXhmxbListQueryInput.cs deleted
1 -using NCC.Common.Filter;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqXhmxb  
5 -{  
6 - /// <summary>  
7 - /// 消耗明细表列表查询输入  
8 - /// </summary>  
9 - public class LqXhmxbListQueryInput : PageInputBase  
10 - {  
11 - /// <summary>  
12 - /// 选择导出数据key  
13 - /// </summary>  
14 - public string selectKey { get; set; }  
15 -  
16 - /// <summary>  
17 - ///  
18 - /// </summary>  
19 - public int dataType { get; set; }  
20 -  
21 -  
22 - /// <summary>  
23 - /// 消耗编号  
24 - /// </summary>  
25 - public string id { get; set; }  
26 -  
27 - /// <summary>  
28 - /// 门店编号  
29 - /// </summary>  
30 - public string mdbh { get; set; }  
31 -  
32 - /// <summary>  
33 - /// 门店名称  
34 - /// </summary>  
35 - public string mdmc { get; set; }  
36 -  
37 - /// <summary>  
38 - /// 部门编号  
39 - /// </summary>  
40 - public string bmbh { get; set; }  
41 -  
42 - /// <summary>  
43 - /// 部门名称  
44 - /// </summary>  
45 - public string bmmc { get; set; }  
46 -  
47 - /// <summary>  
48 - /// 员工编号  
49 - /// </summary>  
50 - public string ygbh { get; set; }  
51 -  
52 - /// <summary>  
53 - /// 员工名称  
54 - /// </summary>  
55 - public string ygmc { get; set; }  
56 -  
57 - /// <summary>  
58 - /// 项目数  
59 - /// </summary>  
60 - public string xms { get; set; }  
61 -  
62 - /// <summary>  
63 - /// 消耗  
64 - /// </summary>  
65 - public string xh { get; set; }  
66 -  
67 - /// <summary>  
68 - /// 手工  
69 - /// </summary>  
70 - public string sg { get; set; }  
71 -  
72 - /// <summary>  
73 - /// 其它手工1  
74 - /// </summary>  
75 - public string qtsg1 { get; set; }  
76 -  
77 - /// <summary>  
78 - /// 其它手工2  
79 - /// </summary>  
80 - public string qtsg2 { get; set; }  
81 -  
82 - /// <summary>  
83 - /// 其它手工3  
84 - /// </summary>  
85 - public string qtsg3 { get; set; }  
86 -  
87 - /// <summary>  
88 - /// 手工合计  
89 - /// </summary>  
90 - public string sghj { get; set; }  
91 -  
92 - }  
93 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhmxb/LqXhmxbUpInput.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -  
4 -namespace NCC.Extend.Entitys.Dto.LqXhmxb  
5 -{  
6 - /// <summary>  
7 - /// 消耗明细表更新输入参数  
8 - /// </summary>  
9 - public class LqXhmxbUpInput : LqXhmxbCrInput  
10 - {  
11 - /// <summary>  
12 - /// 消耗编号  
13 - /// </summary>  
14 - public string id { get; set; }  
15 -  
16 - }  
17 -}  
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_hytk/LqHytkHytkEntity.cs
@@ -102,7 +102,6 @@ namespace NCC.Extend.Entitys.lq_hytk_hytk @@ -102,7 +102,6 @@ namespace NCC.Extend.Entitys.lq_hytk_hytk
102 [SugarColumn(ColumnName = "tkyy")] 102 [SugarColumn(ColumnName = "tkyy")]
103 public string Tkyy { get; set; } 103 public string Tkyy { get; set; }
104 104
105 -  
106 /// <summary> 105 /// <summary>
107 /// 退卡附件 106 /// 退卡附件
108 /// </summary> 107 /// </summary>
@@ -134,16 +133,9 @@ namespace NCC.Extend.Entitys.lq_hytk_hytk @@ -134,16 +133,9 @@ namespace NCC.Extend.Entitys.lq_hytk_hytk
134 public string F_ModifyUser { get; set; } 133 public string F_ModifyUser { get; set; }
135 134
136 /// <summary> 135 /// <summary>
137 - /// 删除标记  
138 - /// </summary>  
139 - [SugarColumn(ColumnName = "F_DeleteMark")]  
140 - public int? F_DeleteMark { get; set; }  
141 -  
142 - /// <summary>  
143 /// 是否有效 136 /// 是否有效
144 /// </summary> 137 /// </summary>
145 [SugarColumn(ColumnName = "F_IsEffective")] 138 [SugarColumn(ColumnName = "F_IsEffective")]
146 public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode(); 139 public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode();
147 -  
148 } 140 }
149 } 141 }
150 \ No newline at end of file 142 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_jksyj/LqHytkJksyjEntity.cs
@@ -103,13 +103,7 @@ namespace NCC.Extend.Entitys.lq_hytk_jksyj @@ -103,13 +103,7 @@ namespace NCC.Extend.Entitys.lq_hytk_jksyj
103 public string F_ModifyUser { get; set; } 103 public string F_ModifyUser { get; set; }
104 104
105 /// <summary> 105 /// <summary>
106 - /// 删除标记  
107 - /// </summary>  
108 - [SugarColumn(ColumnName = "F_DeleteMark")]  
109 - public int? F_DeleteMark { get; set; }  
110 -  
111 - /// <summary>  
112 - /// 退卡品项明细id 106 + /// 退卡品相表id
113 /// </summary> 107 /// </summary>
114 [SugarColumn(ColumnName = "F_CardReturn")] 108 [SugarColumn(ColumnName = "F_CardReturn")]
115 public string CardReturn { get; set; } 109 public string CardReturn { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_kjbsyj/LqHytkKjbsyjEntity.cs
@@ -96,14 +96,9 @@ namespace NCC.Extend.Entitys.lq_hytk_kjbsyj @@ -96,14 +96,9 @@ namespace NCC.Extend.Entitys.lq_hytk_kjbsyj
96 [SugarColumn(ColumnName = "F_ModifyUser")] 96 [SugarColumn(ColumnName = "F_ModifyUser")]
97 public string F_ModifyUser { get; set; } 97 public string F_ModifyUser { get; set; }
98 98
99 - /// <summary>  
100 - /// 删除标记  
101 - /// </summary>  
102 - [SugarColumn(ColumnName = "F_DeleteMark")]  
103 - public int? F_DeleteMark { get; set; }  
104 99
105 /// <summary> 100 /// <summary>
106 - /// 退卡品项明细id 101 + /// 退卡品项明细ID
107 /// </summary> 102 /// </summary>
108 [SugarColumn(ColumnName = "F_CardReturn")] 103 [SugarColumn(ColumnName = "F_CardReturn")]
109 public string CardReturn { get; set; } 104 public string CardReturn { get; set; }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs
@@ -25,7 +25,7 @@ namespace NCC.Extend.Entitys.lq_hytk_mx @@ -25,7 +25,7 @@ namespace NCC.Extend.Entitys.lq_hytk_mx
25 public string RefundInfoId { get; set; } 25 public string RefundInfoId { get; set; }
26 26
27 /// <summary> 27 /// <summary>
28 - /// 退卡记录Id 28 + /// 开单品项明细表id
29 /// </summary> 29 /// </summary>
30 [SugarColumn(ColumnName = "F_BillingItemId")] 30 [SugarColumn(ColumnName = "F_BillingItemId")]
31 public string BillingItemId { get; set; } 31 public string BillingItemId { get; set; }
@@ -68,12 +68,6 @@ namespace NCC.Extend.Entitys.lq_hytk_mx @@ -68,12 +68,6 @@ namespace NCC.Extend.Entitys.lq_hytk_mx
68 public int ProjectNumber { get; set; } 68 public int ProjectNumber { get; set; }
69 69
70 /// <summary> 70 /// <summary>
71 - /// 是否有效  
72 - /// </summary>  
73 - [SugarColumn(ColumnName = "F_IsEnabled")]  
74 - public int IsEnabled { get; set; } = StatusEnum.有效.GetHashCode();  
75 -  
76 - /// <summary>  
77 /// 来源类型 71 /// 来源类型
78 /// </summary> 72 /// </summary>
79 [SugarColumn(ColumnName = "F_SourceType")] 73 [SugarColumn(ColumnName = "F_SourceType")]
@@ -110,12 +104,6 @@ namespace NCC.Extend.Entitys.lq_hytk_mx @@ -110,12 +104,6 @@ namespace NCC.Extend.Entitys.lq_hytk_mx
110 public string ModifyUser { get; set; } 104 public string ModifyUser { get; set; }
111 105
112 /// <summary> 106 /// <summary>
113 - /// 删除标记  
114 - /// </summary>  
115 - [SugarColumn(ColumnName = "F_DeleteMark")]  
116 - public int? DeleteMark { get; set; }  
117 -  
118 - /// <summary>  
119 /// 是否有效 107 /// 是否有效
120 /// </summary> 108 /// </summary>
121 [SugarColumn(ColumnName = "F_IsEffective")] 109 [SugarColumn(ColumnName = "F_IsEffective")]
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs
@@ -229,5 +229,17 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb @@ -229,5 +229,17 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb
229 /// </summary> 229 /// </summary>
230 [SugarColumn(ColumnName = "F_PaidDebt")] 230 [SugarColumn(ColumnName = "F_PaidDebt")]
231 public decimal PaidDebt { get; set; } 231 public decimal PaidDebt { get; set; }
  232 +
  233 + /// <summary>
  234 + /// 补缴开单ID
  235 + /// </summary>
  236 + [SugarColumn(ColumnName = "F_SupplementBillingId")]
  237 + public string SupplementBillingId { get; set; }
  238 +
  239 + /// <summary>
  240 + /// 补缴金额
  241 + /// </summary>
  242 + [SugarColumn(ColumnName = "F_SupplementAmount")]
  243 + public decimal SupplementAmount { get; set; }
232 } 244 }
233 } 245 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_qkbj/LqKdQkbjEntity.cs deleted
1 -using NCC.Common.Const;  
2 -using SqlSugar;  
3 -using System;  
4 -  
5 -namespace NCC.Extend.Entitys.lq_kd_qkbj  
6 -{  
7 - /// <summary>  
8 - /// 开单欠款补缴记录表  
9 - /// </summary>  
10 - [SugarTable("lq_kd_qkbj")]  
11 - [Tenant(ClaimConst.TENANT_ID)]  
12 - public class LqKdQkbjEntity  
13 - {  
14 - /// <summary>  
15 - /// 补缴记录ID  
16 - /// </summary>  
17 - [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]  
18 - public string Id { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 开单记录ID  
22 - /// </summary>  
23 - [SugarColumn(ColumnName = "F_BillingId")]  
24 - public string BillingId { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 补缴金额  
28 - /// </summary>  
29 - [SugarColumn(ColumnName = "F_PaymentAmount")]  
30 - public decimal PaymentAmount { get; set; }  
31 -  
32 - /// <summary>  
33 - /// 付款方式  
34 - /// </summary>  
35 - [SugarColumn(ColumnName = "F_PaymentMethod")]  
36 - public string PaymentMethod { get; set; }  
37 -  
38 - /// <summary>  
39 - /// 付款日期  
40 - /// </summary>  
41 - [SugarColumn(ColumnName = "F_PaymentDate")]  
42 - public DateTime PaymentDate { get; set; }  
43 -  
44 - /// <summary>  
45 - /// 收款人员  
46 - /// </summary>  
47 - [SugarColumn(ColumnName = "F_PaymentUser")]  
48 - public string PaymentUser { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 备注  
52 - /// </summary>  
53 - [SugarColumn(ColumnName = "F_Remarks")]  
54 - public string Remarks { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 创建时间  
58 - /// </summary>  
59 - [SugarColumn(ColumnName = "F_CreateTime")]  
60 - public DateTime CreateTime { get; set; }  
61 -  
62 - /// <summary>  
63 - /// 更新时间  
64 - /// </summary>  
65 - [SugarColumn(ColumnName = "F_UpdateTime")]  
66 - public DateTime UpdateTime { get; set; }  
67 -  
68 - /// <summary>  
69 - /// 是否有效  
70 - /// </summary>  
71 - [SugarColumn(ColumnName = "F_IsEffective")]  
72 - public int IsEffective { get; set; } = 1;  
73 - }  
74 -}  
75 \ No newline at end of file 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_khxx/LqKhxxEntity.cs
1 using System; 1 using System;
2 using NCC.Common.Const; 2 using NCC.Common.Const;
  3 +using NCC.Extend.Entitys.Enum;
3 using SqlSugar; 4 using SqlSugar;
4 5
5 namespace NCC.Extend.Entitys.lq_khxx 6 namespace NCC.Extend.Entitys.lq_khxx
@@ -140,5 +141,11 @@ namespace NCC.Extend.Entitys.lq_khxx @@ -140,5 +141,11 @@ namespace NCC.Extend.Entitys.lq_khxx
140 [SugarColumn(ColumnName = "F_SubHealthUser")] 141 [SugarColumn(ColumnName = "F_SubHealthUser")]
141 public string SubHealthUser { get; set; } 142 public string SubHealthUser { get; set; }
142 143
  144 + /// <summary>
  145 + /// 是否有效
  146 + /// </summary>
  147 + [SugarColumn(ColumnName = "F_IsEffective")]
  148 + public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode();
  149 +
143 } 150 }
144 } 151 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_tkjlb/LqTkjlbEntity.cs
1 using System; 1 using System;
  2 +using NCC.Common.Enum;
  3 +using NCC.Extend.Entitys.Enum;
2 using SqlSugar; 4 using SqlSugar;
3 5
4 namespace NCC.Extend.Entitys.lq_tkjlb 6 namespace NCC.Extend.Entitys.lq_tkjlb
@@ -92,5 +94,6 @@ namespace NCC.Extend.Entitys.lq_tkjlb @@ -92,5 +94,6 @@ namespace NCC.Extend.Entitys.lq_tkjlb
92 /// </summary> 94 /// </summary>
93 [SugarColumn(ColumnName = "F_CreateTime")] 95 [SugarColumn(ColumnName = "F_CreateTime")]
94 public DateTime CreateTime { get; set; } = DateTime.Now; 96 public DateTime CreateTime { get; set; } = DateTime.Now;
  97 +
95 } 98 }
96 } 99 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_hyhk/LqXhHyhkEntity.cs
1 using System; 1 using System;
2 using NCC.Common.Const; 2 using NCC.Common.Const;
  3 +using NCC.Extend.Entitys.Enum;
3 using SqlSugar; 4 using SqlSugar;
4 5
5 namespace NCC.Extend.Entitys.lq_xh_hyhk 6 namespace NCC.Extend.Entitys.lq_xh_hyhk
@@ -118,6 +119,6 @@ namespace NCC.Extend.Entitys.lq_xh_hyhk @@ -118,6 +119,6 @@ namespace NCC.Extend.Entitys.lq_xh_hyhk
118 /// 是否有效 119 /// 是否有效
119 /// </summary> 120 /// </summary>
120 [SugarColumn(ColumnName = "F_IsEffective")] 121 [SugarColumn(ColumnName = "F_IsEffective")]
121 - public int? IsEffective { get; set; } = 1; 122 + public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode();
122 } 123 }
123 } 124 }
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xhmxb/LqXhmxbEntity.cs deleted
1 -using NCC.Common.Const;  
2 -using SqlSugar;  
3 -using System;  
4 -  
5 -namespace NCC.Extend.Entitys.lq_xhmxb  
6 -{  
7 - /// <summary>  
8 - /// 消耗明细表  
9 - /// </summary>  
10 - [SugarTable("lq_xhmxb")]  
11 - [Tenant(ClaimConst.TENANT_ID)]  
12 - public class LqXhmxbEntity  
13 - {  
14 - /// <summary>  
15 - /// 消耗编号  
16 - /// </summary>  
17 - [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)]  
18 - public string Id { get; set; }  
19 -  
20 - /// <summary>  
21 - /// 门店编号  
22 - /// </summary>  
23 - [SugarColumn(ColumnName = "mdbh")]  
24 - public string Mdbh { get; set; }  
25 -  
26 - /// <summary>  
27 - /// 门店名称  
28 - /// </summary>  
29 - [SugarColumn(ColumnName = "mdmc")]  
30 - public string Mdmc { get; set; }  
31 -  
32 - /// <summary>  
33 - /// 部门编号  
34 - /// </summary>  
35 - [SugarColumn(ColumnName = "bmbh")]  
36 - public string Bmbh { get; set; }  
37 -  
38 - /// <summary>  
39 - /// 部门名称  
40 - /// </summary>  
41 - [SugarColumn(ColumnName = "bmmc")]  
42 - public string Bmmc { get; set; }  
43 -  
44 - /// <summary>  
45 - /// 员工编号  
46 - /// </summary>  
47 - [SugarColumn(ColumnName = "ygbh")]  
48 - public string Ygbh { get; set; }  
49 -  
50 - /// <summary>  
51 - /// 员工名称  
52 - /// </summary>  
53 - [SugarColumn(ColumnName = "ygmc")]  
54 - public string Ygmc { get; set; }  
55 -  
56 - /// <summary>  
57 - /// 项目数  
58 - /// </summary>  
59 - [SugarColumn(ColumnName = "xms")]  
60 - public string Xms { get; set; }  
61 -  
62 - /// <summary>  
63 - /// 消耗  
64 - /// </summary>  
65 - [SugarColumn(ColumnName = "xh")]  
66 - public string Xh { get; set; }  
67 -  
68 - /// <summary>  
69 - /// 手工  
70 - /// </summary>  
71 - [SugarColumn(ColumnName = "sg")]  
72 - public string Sg { get; set; }  
73 -  
74 - /// <summary>  
75 - /// 其它手工1  
76 - /// </summary>  
77 - [SugarColumn(ColumnName = "qtsg1")]  
78 - public string Qtsg1 { get; set; }  
79 -  
80 - /// <summary>  
81 - /// 其它手工2  
82 - /// </summary>  
83 - [SugarColumn(ColumnName = "qtsg2")]  
84 - public string Qtsg2 { get; set; }  
85 -  
86 - /// <summary>  
87 - /// 其它手工3  
88 - /// </summary>  
89 - [SugarColumn(ColumnName = "qtsg3")]  
90 - public string Qtsg3 { get; set; }  
91 -  
92 - /// <summary>  
93 - /// 手工合计  
94 - /// </summary>  
95 - [SugarColumn(ColumnName = "sghj")]  
96 - public string Sghj { get; set; }  
97 -  
98 - }  
99 -}  
100 \ No newline at end of file 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Mapper/LqXhmxbMapper.cs deleted
1 -using NCC.Common.Helper;  
2 -using NCC.Extend.Entitys.Dto.LqXhmxb;  
3 -using Mapster;  
4 -using System.Collections.Generic;  
5 -  
6 -namespace NCC.Extend.Entitys.Mapper.LqXhmxb  
7 -{  
8 - public class Mapper : IRegister  
9 - {  
10 - public void Register(TypeAdapterConfig config)  
11 - {  
12 - }  
13 - }  
14 -}  
netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqXhmxbService.cs deleted
1 -namespace NCC.Extend.Interfaces.LqXhmxb  
2 -{  
3 - public interface ILqXhmxbService  
4 - {  
5 - }  
6 -}  
7 \ No newline at end of file 0 \ No newline at end of file
netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs
@@ -200,7 +200,6 @@ namespace NCC.Extend.LqHytkHytk @@ -200,7 +200,6 @@ namespace NCC.Extend.LqHytkHytk
200 entity.Id = YitIdHelper.NextId().ToString(); 200 entity.Id = YitIdHelper.NextId().ToString();
201 entity.F_CreateTime = DateTime.Now; 201 entity.F_CreateTime = DateTime.Now;
202 entity.F_CreateUser = userInfo.userId; 202 entity.F_CreateUser = userInfo.userId;
203 - entity.F_DeleteMark = 0;  
204 entity.IsEffective = StatusEnum.有效.GetHashCode(); 203 entity.IsEffective = StatusEnum.有效.GetHashCode();
205 entity.Czry = userInfo.userId; 204 entity.Czry = userInfo.userId;
206 205
@@ -230,13 +229,11 @@ namespace NCC.Extend.LqHytkHytk @@ -230,13 +229,11 @@ namespace NCC.Extend.LqHytkHytk
230 BillingItemId = item.billingItemId, 229 BillingItemId = item.billingItemId,
231 CreateTime = DateTime.Now, 230 CreateTime = DateTime.Now,
232 CreateUser = userInfo.userId, 231 CreateUser = userInfo.userId,
233 - DeleteMark = 0,  
234 Px = item.px, 232 Px = item.px,
235 Pxmc = item.pxmc, 233 Pxmc = item.pxmc,
236 Pxjg = item.pxjg, 234 Pxjg = item.pxjg,
237 Tkje = item.tkje, 235 Tkje = item.tkje,
238 ProjectNumber = item.F_ProjectNumber ?? 1, 236 ProjectNumber = item.F_ProjectNumber ?? 1,
239 - IsEnabled = item.F_IsEnabled ?? 1,  
240 SourceType = item.F_SourceType, 237 SourceType = item.F_SourceType,
241 TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), 238 TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)),
242 IsEffective = StatusEnum.有效.GetHashCode(), 239 IsEffective = StatusEnum.有效.GetHashCode(),
@@ -263,7 +260,6 @@ namespace NCC.Extend.LqHytkHytk @@ -263,7 +260,6 @@ namespace NCC.Extend.LqHytkHytk
263 F_tkpxNumber = ijks_tem.F_tkpxNumber, 260 F_tkpxNumber = ijks_tem.F_tkpxNumber,
264 F_CreateTime = DateTime.Now, 261 F_CreateTime = DateTime.Now,
265 F_CreateUser = userInfo.userId, 262 F_CreateUser = userInfo.userId,
266 - F_DeleteMark = 0,  
267 CardReturn = lqHytkMxEntity.Id, 263 CardReturn = lqHytkMxEntity.Id,
268 IsEffective = StatusEnum.有效.GetHashCode(), 264 IsEffective = StatusEnum.有效.GetHashCode(),
269 } 265 }
@@ -291,7 +287,6 @@ namespace NCC.Extend.LqHytkHytk @@ -291,7 +287,6 @@ namespace NCC.Extend.LqHytkHytk
291 F_tkpxNumber = ikjbs_tem.F_tkpxNumber, 287 F_tkpxNumber = ikjbs_tem.F_tkpxNumber,
292 F_CreateTime = DateTime.Now, 288 F_CreateTime = DateTime.Now,
293 F_CreateUser = userInfo.userId, 289 F_CreateUser = userInfo.userId,
294 - F_DeleteMark = 0,  
295 CardReturn = lqHytkMxEntity.Id, 290 CardReturn = lqHytkMxEntity.Id,
296 IsEffective = StatusEnum.有效.GetHashCode(), 291 IsEffective = StatusEnum.有效.GetHashCode(),
297 } 292 }
@@ -385,13 +380,11 @@ namespace NCC.Extend.LqHytkHytk @@ -385,13 +380,11 @@ namespace NCC.Extend.LqHytkHytk
385 CreateTime = DateTime.Now, 380 CreateTime = DateTime.Now,
386 CreateUser = userInfo.userId, 381 CreateUser = userInfo.userId,
387 Tksj = input.tksj, 382 Tksj = input.tksj,
388 - DeleteMark = 0,  
389 Px = item.px, 383 Px = item.px,
390 Pxmc = item.pxmc, 384 Pxmc = item.pxmc,
391 Pxjg = item.pxjg, 385 Pxjg = item.pxjg,
392 Tkje = item.tkje, 386 Tkje = item.tkje,
393 ProjectNumber = item.F_ProjectNumber ?? 1, 387 ProjectNumber = item.F_ProjectNumber ?? 1,
394 - IsEnabled = item.F_IsEnabled ?? 1,  
395 SourceType = item.F_SourceType, 388 SourceType = item.F_SourceType,
396 TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), 389 TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)),
397 }; 390 };
@@ -418,7 +411,6 @@ namespace NCC.Extend.LqHytkHytk @@ -418,7 +411,6 @@ namespace NCC.Extend.LqHytkHytk
418 F_tkpxNumber = ijks_tem.F_tkpxNumber, 411 F_tkpxNumber = ijks_tem.F_tkpxNumber,
419 F_CreateTime = DateTime.Now, 412 F_CreateTime = DateTime.Now,
420 F_CreateUser = userInfo.userId, 413 F_CreateUser = userInfo.userId,
421 - F_DeleteMark = 0,  
422 } 414 }
423 ); 415 );
424 } 416 }
@@ -444,7 +436,6 @@ namespace NCC.Extend.LqHytkHytk @@ -444,7 +436,6 @@ namespace NCC.Extend.LqHytkHytk
444 F_tkpxNumber = ikjbs_tem.F_tkpxNumber, 436 F_tkpxNumber = ikjbs_tem.F_tkpxNumber,
445 F_CreateTime = DateTime.Now, 437 F_CreateTime = DateTime.Now,
446 F_CreateUser = userInfo.userId, 438 F_CreateUser = userInfo.userId,
447 - F_DeleteMark = 0,  
448 } 439 }
449 ); 440 );
450 } 441 }
@@ -479,23 +470,42 @@ namespace NCC.Extend.LqHytkHytk @@ -479,23 +470,42 @@ namespace NCC.Extend.LqHytkHytk
479 } 470 }
480 #endregion 471 #endregion
481 472
482 - #region 标记退卡信息为无效 473 + #region 作废退卡信息
483 /// <summary> 474 /// <summary>
484 - /// 删除退卡信息(逻辑删除) 475 + /// 作废退卡信息
485 /// </summary> 476 /// </summary>
486 /// <param name="id">主键</param> 477 /// <param name="id">主键</param>
487 /// <returns></returns> 478 /// <returns></returns>
488 - [HttpDelete("{id}")]  
489 - public async Task Delete(string id) 479 + [HttpPut("VoidRefundCardInfo/{id}")]
  480 + public async Task<dynamic> VoidRefundCardInfo(string id)
490 { 481 {
491 - var entity = await _db.Queryable<LqHytkHytkEntity>().FirstAsync(p => p.Id == id);  
492 - if (entity != null) 482 + try
493 { 483 {
  484 + var entity = await _db.Queryable<LqHytkHytkEntity>().FirstAsync(p => p.Id == id && p.IsEffective == StatusEnum.有效.GetHashCode());
  485 + if (entity == null)
  486 + {
  487 + throw NCCException.Oh("退卡信息不存在或已被作废");
  488 + }
  489 + // 开启事务
  490 + _db.BeginTran();
  491 + // 更新主表
494 entity.IsEffective = StatusEnum.无效.GetHashCode(); 492 entity.IsEffective = StatusEnum.无效.GetHashCode();
495 - await _lqHytkHytkRepository.UpdateAsync(entity); 493 + entity.F_ModifyTime = DateTime.Now;
  494 + await _db.Updateable(entity).ExecuteCommandAsync();
  495 + // 更新明细表
496 await _db.Updateable<LqHytkMxEntity>().SetColumns(it => new LqHytkMxEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.RefundInfoId == id).ExecuteCommandAsync(); 496 await _db.Updateable<LqHytkMxEntity>().SetColumns(it => new LqHytkMxEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.RefundInfoId == id).ExecuteCommandAsync();
  497 + // 更新健康师业绩表
497 await _db.Updateable<LqHytkJksyjEntity>().SetColumns(it => new LqHytkJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Gltkbh == id).ExecuteCommandAsync(); 498 await _db.Updateable<LqHytkJksyjEntity>().SetColumns(it => new LqHytkJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Gltkbh == id).ExecuteCommandAsync();
  499 + // 更新科技部业绩表
498 await _db.Updateable<LqHytkKjbsyjEntity>().SetColumns(it => new LqHytkKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Gltkbh == id).ExecuteCommandAsync(); 500 await _db.Updateable<LqHytkKjbsyjEntity>().SetColumns(it => new LqHytkKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Gltkbh == id).ExecuteCommandAsync();
  501 + // 提交事务
  502 + _db.CommitTran();
  503 + return entity;
  504 + }
  505 + catch (Exception ex)
  506 + {
  507 + _db.RollbackTran();
  508 + throw NCCException.Oh($"删除退卡信息失败: {ex.Message}");
499 } 509 }
500 } 510 }
501 #endregion 511 #endregion
@@ -598,10 +608,10 @@ namespace NCC.Extend.LqHytkHytk @@ -598,10 +608,10 @@ namespace NCC.Extend.LqHytkHytk
598 try 608 try
599 { 609 {
600 // 1. 查询主表信息 610 // 1. 查询主表信息
601 - var entity = await _db.Queryable<LqHytkHytkEntity>().FirstAsync(p => p.Id == id); 611 + var entity = await _db.Queryable<LqHytkHytkEntity>().Where(p => p.Id == id && p.IsEffective == StatusEnum.有效.GetHashCode()).FirstAsync();
602 if (entity == null) 612 if (entity == null)
603 { 613 {
604 - throw NCCException.Oh(ErrorCode.COM1005, "退卡记录不存在"); 614 + throw NCCException.Oh(ErrorCode.COM1005, "退卡记录不存在或已作废");
605 } 615 }
606 616
607 var output = entity.Adapt<LqHytkHytkInfoOutput>(); 617 var output = entity.Adapt<LqHytkHytkInfoOutput>();
@@ -629,7 +639,6 @@ namespace NCC.Extend.LqHytkHytk @@ -629,7 +639,6 @@ namespace NCC.Extend.LqHytkHytk
629 pxjg = mx.Pxjg, 639 pxjg = mx.Pxjg,
630 tkje = mx.Tkje, 640 tkje = mx.Tkje,
631 projectNumber = mx.ProjectNumber, 641 projectNumber = mx.ProjectNumber,
632 - isEnabled = mx.IsEnabled,  
633 sourceType = mx.SourceType, 642 sourceType = mx.SourceType,
634 totalPrice = mx.TotalPrice, 643 totalPrice = mx.TotalPrice,
635 }; 644 };
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -27,7 +27,6 @@ using NCC.Extend.Entitys.lq_kd_jksyj; @@ -27,7 +27,6 @@ using NCC.Extend.Entitys.lq_kd_jksyj;
27 using NCC.Extend.Entitys.lq_kd_kdjlb; 27 using NCC.Extend.Entitys.lq_kd_kdjlb;
28 using NCC.Extend.Entitys.lq_kd_kjbsyj; 28 using NCC.Extend.Entitys.lq_kd_kjbsyj;
29 using NCC.Extend.Entitys.lq_kd_pxmx; 29 using NCC.Extend.Entitys.lq_kd_pxmx;
30 -using NCC.Extend.Entitys.lq_kd_qkbj;  
31 using NCC.Extend.Entitys.lq_khxx; 30 using NCC.Extend.Entitys.lq_khxx;
32 using NCC.Extend.Entitys.lq_xh_pxmx; 31 using NCC.Extend.Entitys.lq_xh_pxmx;
33 using NCC.Extend.Entitys.lq_xmzl; 32 using NCC.Extend.Entitys.lq_xmzl;
@@ -144,7 +143,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -144,7 +143,7 @@ namespace NCC.Extend.LqKdKdjlb
144 totalPrice = pxmx.TotalPrice, 143 totalPrice = pxmx.TotalPrice,
145 actualPrice = pxmx.ActualPrice, 144 actualPrice = pxmx.ActualPrice,
146 remark = pxmx.Remark, 145 remark = pxmx.Remark,
147 - IsEffective = pxmx.IsEffective, 146 + isEffective = pxmx.IsEffective,
148 }; 147 };
149 148
150 // 关联该品项的健康师业绩 149 // 关联该品项的健康师业绩
@@ -309,6 +308,22 @@ namespace NCC.Extend.LqKdKdjlb @@ -309,6 +308,22 @@ namespace NCC.Extend.LqKdKdjlb
309 // await _db.Updateable<LqKdDeductinfoEntity>().Where(p => p.BillingId == input.cancelRefId).UpdateColumns(p => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync(); 308 // await _db.Updateable<LqKdDeductinfoEntity>().Where(p => p.BillingId == input.cancelRefId).UpdateColumns(p => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync();
310 // } 309 // }
311 310
  311 + //判断是否有补缴开单ID
  312 + if (!string.IsNullOrEmpty(input.supplementBillingId))
  313 + {
  314 + //查询补缴开单ID
  315 + var supplementBillingEntity = await _db.Queryable<LqKdKdjlbEntity>().FirstAsync(p => p.Id == input.supplementBillingId);
  316 + if (supplementBillingEntity == null || supplementBillingEntity.IsEffective == StatusEnum.无效.GetHashCode())
  317 + {
  318 + throw NCCException.Oh("补缴开单记录不存在或已作废");
  319 + }
  320 + //然后对之前的开单表的补缴金额进行累加
  321 + //需要判断补缴金额是否超过欠款金额,只记录应缴金额
  322 + var supplementAmount = supplementBillingEntity.Qk - supplementBillingEntity.PaidDebt;
  323 + entity.PaidDebt += input.supplementAmount > supplementAmount ? supplementAmount : input.supplementAmount;
  324 + await _db.Updateable(entity).ExecuteCommandAsync();
  325 + }
  326 +
312 //新增开单记录表记录 327 //新增开单记录表记录
313 entity.CreateUser = userInfo.userId; 328 entity.CreateUser = userInfo.userId;
314 entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);//计算储扣总金额 329 entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);//计算储扣总金额
@@ -1548,158 +1563,96 @@ namespace NCC.Extend.LqKdKdjlb @@ -1548,158 +1563,96 @@ namespace NCC.Extend.LqKdKdjlb
1548 } 1563 }
1549 #endregion 1564 #endregion
1550 1565
1551 - #region 补缴欠款 1566 + #region 根据门店获取该门店的欠款记录
1552 /// <summary> 1567 /// <summary>
1553 - /// 补缴欠款 1568 + /// 根据门店获取该门店的欠款记录
1554 /// </summary> 1569 /// </summary>
1555 - /// <param name="input">补缴欠款输入</param>  
1556 - /// <returns>补缴记录ID</returns> 1570 + /// <param name="input">查询参数</param>
  1571 + /// <returns>分页的欠款记录</returns>
1557 /// <remarks> 1572 /// <remarks>
1558 - /// 为客户补缴欠款,记录补缴信息并更新开单记录的已缴欠款金额 1573 + /// 获取指定门店的欠款记录,考虑已缴欠款情况,支持分页
1559 /// 1574 ///
1560 /// 示例请求: 1575 /// 示例请求:
1561 /// ```json 1576 /// ```json
1562 /// { 1577 /// {
1563 - /// "billingId": "123456789",  
1564 - /// "paymentAmount": 1000.00,  
1565 - /// "paymentMethod": "现金",  
1566 - /// "paymentDate": "2025-01-15T10:30:00",  
1567 - /// "paymentUser": "收款员",  
1568 - /// "remarks": "客户补缴欠款" 1578 + /// "storeId": "门店ID",
  1579 + /// "currentPage": 1,
  1580 + /// "pageSize": 10,
  1581 + /// "sidx": "Kdrq",
  1582 + /// "sort": "desc"
1569 /// } 1583 /// }
1570 /// ``` 1584 /// ```
1571 /// 1585 ///
1572 /// 参数说明: 1586 /// 参数说明:
1573 - /// - billingId: 开单记录ID(必填)  
1574 - /// - paymentAmount: 补缴金额(必填)  
1575 - /// - paymentMethod: 付款方式  
1576 - /// - paymentDate: 付款日期  
1577 - /// - paymentUser: 收款人员  
1578 - /// - remarks: 备注信息 1587 + /// - storeId: 门店ID,必填
  1588 + /// - currentPage: 当前页码
  1589 + /// - pageSize: 每页大小
  1590 + /// - sidx: 排序字段,默认按开单日期
  1591 + /// - sort: 排序方式,默认降序
  1592 + ///
  1593 + /// 返回说明:
  1594 + /// - 只返回仍有欠款的记录(总欠款 > 已缴欠款)
  1595 + /// - 包含开单编号、客户信息、欠款金额、已缴金额等
1579 /// </remarks> 1596 /// </remarks>
1580 - /// <response code="200">补缴成功,返回补缴记录ID</response>  
1581 - /// <response code="400">请求参数错误</response>  
1582 - /// <response code="404">开单记录不存在</response>  
1583 - /// <response code="500">服务器内部错误</response>  
1584 - [HttpPost("PayDebtAsync")]  
1585 - public async Task<dynamic> PayDebtAsync(PayDebtInput input) 1597 + /// <response code="200">成功返回分页的欠款记录列表</response>
  1598 + /// <response code="400">门店ID不能为空</response>
  1599 + /// <response code="500">服务器错误</response>
  1600 + [HttpGet("GetDebtRecordByStoreId")]
  1601 + public async Task<dynamic> GetDebtRecordByStoreId([FromQuery] DebtRecordQueryInput input)
1586 { 1602 {
1587 try 1603 try
1588 { 1604 {
1589 - // 验证补缴金额  
1590 - if (input.PaymentAmount <= 0)  
1591 - {  
1592 - throw NCCException.Oh("补缴金额必须大于0");  
1593 - }  
1594 -  
1595 - // 检查开单记录是否存在  
1596 - var billingRecord = await _db.Queryable<LqKdKdjlbEntity>().Where(w => w.Id == input.BillingId).FirstAsync();  
1597 - if (billingRecord == null || billingRecord.IsEffective == StatusEnum.无效.GetHashCode())  
1598 - {  
1599 - throw NCCException.Oh("开单记录不存在或已作废");  
1600 - }  
1601 - // 检查补缴金额是否超过欠款金额  
1602 - var remainingDebt = billingRecord.Qk - billingRecord.PaidDebt;  
1603 - if (input.PaymentAmount > remainingDebt)  
1604 - {  
1605 - throw NCCException.Oh($"补缴金额({input.PaymentAmount})不能超过剩余欠款金额({remainingDebt})");  
1606 - }  
1607 - // 开始事务  
1608 - _db.BeginTran();  
1609 - try  
1610 - {  
1611 - // 创建补缴记录  
1612 - var paymentRecord = new LqKdQkbjEntity  
1613 - {  
1614 - Id = YitIdHelper.NextId().ToString(),  
1615 - BillingId = input.BillingId,  
1616 - PaymentAmount = input.PaymentAmount,  
1617 - PaymentMethod = input.PaymentMethod,  
1618 - PaymentDate = input.PaymentDate ?? DateTime.Now,  
1619 - PaymentUser = input.PaymentUser ?? _userManager.UserId,  
1620 - Remarks = input.Remarks,  
1621 - CreateTime = DateTime.Now,  
1622 - UpdateTime = DateTime.Now,  
1623 - IsEffective = StatusEnum.有效.GetHashCode()  
1624 - };  
1625 - // 保存补缴记录  
1626 - await _db.Insertable(paymentRecord).ExecuteCommandAsync();  
1627 -  
1628 - // 更新开单记录的已缴欠款金额  
1629 - await _db.Updateable<LqKdKdjlbEntity>()  
1630 - .SetColumns(it => new LqKdKdjlbEntity  
1631 - {  
1632 - PaidDebt = it.PaidDebt + input.PaymentAmount,  
1633 - UpdateTime = DateTime.Now  
1634 - })  
1635 - .Where(w => w.Id == input.BillingId)  
1636 - .ExecuteCommandAsync();  
1637 -  
1638 - // 提交事务  
1639 - _db.CommitTran();  
1640 - return new  
1641 - {  
1642 - success = true,  
1643 - message = "补缴成功",  
1644 - data = paymentRecord.Id  
1645 - };  
1646 - }  
1647 - catch 1605 + if (string.IsNullOrEmpty(input.StoreId))
1648 { 1606 {
1649 - // 回滚事务  
1650 - _db.RollbackTran();  
1651 - throw; 1607 + throw NCCException.Oh("门店ID不能为空");
1652 } 1608 }
1653 - }  
1654 - catch (Exception ex)  
1655 - {  
1656 - throw NCCException.Oh($"补缴欠款失败: {ex.Message}");  
1657 - }  
1658 - }  
1659 -  
1660 -  
1661 - #endregion  
1662 -  
1663 - #region 补缴欠款查询  
1664 - /// <summary>  
1665 - /// 获取补缴欠款记录列表  
1666 - /// </summary>  
1667 - /// <param name="input">查询输入</param>  
1668 - /// <returns>补缴记录列表</returns>  
1669 - /// <remarks>  
1670 - /// 获取指定开单记录的补缴欠款历史记录  
1671 - /// </remarks>  
1672 - /// <response code="200">成功获取补缴记录列表</response>  
1673 - /// <response code="400">请求参数错误</response>  
1674 - /// <response code="500">服务器内部错误</response>  
1675 - [HttpGet("GetDebtPaymentRecordsAsync")]  
1676 - public async Task<dynamic> GetDebtPaymentRecordsAsync([FromQuery] DebtPaymentQueryInput input)  
1677 - {  
1678 - try  
1679 - {  
1680 - var sidx = input.sidx == null ? "PaymentDate" : input.sidx;  
1681 - var data = await _db.Queryable<LqKdQkbjEntity>()  
1682 - .WhereIF(!string.IsNullOrEmpty(input.BillingId), w => w.BillingId == input.BillingId)  
1683 - .WhereIF(input.PaymentDateStart.HasValue, w => w.PaymentDate >= input.PaymentDateStart.Value)  
1684 - .WhereIF(input.PaymentDateEnd.HasValue, w => w.PaymentDate <= input.PaymentDateEnd.Value)  
1685 - .WhereIF(!string.IsNullOrEmpty(input.PaymentUser), w => w.PaymentUser.Contains(input.PaymentUser))  
1686 - .Select(it => new DebtPaymentRecordOutput 1609 + var sidx = string.IsNullOrEmpty(input.sidx) ? "Kdrq" : input.sidx;
  1610 + var sort = string.IsNullOrEmpty(input.sort) ? "desc" : input.sort;
  1611 + // 获取该门店的欠款记录,考虑已缴欠款情况
  1612 + // 只返回仍有欠款的记录:总欠款 > 已缴欠款
  1613 + var debtRecords = await _db.Queryable<LqKdKdjlbEntity>()
  1614 + .Where(p => p.Djmd == input.StoreId && p.Qk > p.PaidDebt && p.IsEffective == StatusEnum.有效.GetHashCode())
  1615 + .Select(it => new LqKdKdjlbListOutput
1687 { 1616 {
1688 - Id = it.Id,  
1689 - BillingId = it.BillingId,  
1690 - PaymentAmount = it.PaymentAmount,  
1691 - PaymentMethod = it.PaymentMethod,  
1692 - PaymentDate = it.PaymentDate,  
1693 - PaymentUser = it.PaymentUser,  
1694 - Remarks = it.Remarks,  
1695 - CreateTime = it.CreateTime  
1696 - }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize);  
1697 -  
1698 - return PageResult<DebtPaymentRecordOutput>.SqlSugarPageResult(data); 1617 + id = it.Id,
  1618 + djmd = it.Djmd,
  1619 + jsj = it.Jsj,
  1620 + kdrq = it.Kdrq,
  1621 + gjlx = it.Gjlx,
  1622 + hgjg = it.Hgjg,
  1623 + zdyj = it.Zdyj,
  1624 + sfyj = it.Sfyj,
  1625 + qk = it.Qk,
  1626 + ckfs = it.Ckfs,
  1627 + PaidDebt = it.PaidDebt,
  1628 + fkfs = it.Fkfs,
  1629 + fkyy = it.Fkyy,
  1630 + fkpd = it.Fkpd,
  1631 + khly = it.Khly,
  1632 + tjr = it.Tjr,
  1633 + deductAmount = it.DeductAmount,
  1634 + sfskdd = it.Sfskdd,
  1635 + jj = it.Jj,
  1636 + bz = it.Bz,
  1637 + kdhy = it.Kdhy,
  1638 + kdhyc = it.Kdhyc,
  1639 + kdhysjh = it.Kdhysjh,
  1640 + jksyj = it.Jksyj,
  1641 + kjblsyj = it.Kjblsyj,
  1642 + pxxx = it.Pxxx,
  1643 + IsEffective = it.IsEffective,
  1644 + CreateUser = it.CreateUser,
  1645 + CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName),
  1646 + })
  1647 + .MergeTable()
  1648 + .OrderBy(sidx + " " + sort)
  1649 + .ToPagedListAsync(input.currentPage, input.pageSize);
  1650 +
  1651 + return PageResult<LqKdKdjlbListOutput>.SqlSugarPageResult(debtRecords);
1699 } 1652 }
1700 catch (Exception ex) 1653 catch (Exception ex)
1701 { 1654 {
1702 - throw NCCException.Oh($"获取补缴记录失败: {ex.Message}"); 1655 + throw NCCException.Oh($"获取门店欠款记录失败: {ex.Message}");
1703 } 1656 }
1704 } 1657 }
1705 #endregion 1658 #endregion
@@ -1725,14 +1678,14 @@ namespace NCC.Extend.LqKdKdjlb @@ -1725,14 +1678,14 @@ namespace NCC.Extend.LqKdKdjlb
1725 { 1678 {
1726 return (false, "该开单记录已经作废"); 1679 return (false, "该开单记录已经作废");
1727 } 1680 }
1728 - // 查询开单记录下的品项明细ID列表  
1729 - var pxmxIdList = await _db.Queryable<LqKdPxmxEntity>().Where(p => p.Glkdbh == billingId).Select(p => p.Id).Distinct().ToListAsync();  
1730 - //判断是否有对应的补缴记录  
1731 - var qkbjList = await _db.Queryable<LqKdQkbjEntity>().Where(p => p.BillingId == billingId).ToListAsync(); 1681 + // 判断是否有对应的补缴记录
  1682 + var qkbjList = await _db.Queryable<LqKdKdjlbEntity>().Where(p => p.SupplementBillingId == billingId).ToListAsync();
1732 if (qkbjList.Any()) 1683 if (qkbjList.Any())
1733 { 1684 {
1734 return (false, "该开单记录有对应的补缴记录,不能进行操作"); 1685 return (false, "该开单记录有对应的补缴记录,不能进行操作");
1735 } 1686 }
  1687 + // 查询开单记录下的品项明细ID列表
  1688 + var pxmxIdList = await _db.Queryable<LqKdPxmxEntity>().Where(p => p.Glkdbh == billingId).Select(p => p.Id).Distinct().ToListAsync();
1736 // 判断是否有对应的消耗记录 1689 // 判断是否有对应的消耗记录
1737 var xhPxmxList = await _db.Queryable<LqXhPxmxEntity>().Where(p => pxmxIdList.Contains(p.BillingItemId)).ToListAsync(); 1690 var xhPxmxList = await _db.Queryable<LqXhPxmxEntity>().Where(p => pxmxIdList.Contains(p.BillingItemId)).ToListAsync();
1738 if (xhPxmxList.Any()) 1691 if (xhPxmxList.Any())
netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
@@ -352,7 +352,7 @@ namespace NCC.Extend.LqKhxx @@ -352,7 +352,7 @@ namespace NCC.Extend.LqKhxx
352 throw NCCException.Oh("客户不存在"); 352 throw NCCException.Oh("客户不存在");
353 } 353 }
354 // 查询开单记录数量 354 // 查询开单记录数量
355 - var orderCount = await _db.Queryable<LqKdKdjlbEntity>().Where(o => o.Kdhy == customerId && o.IsEffective == StatusEnum.有效.GetHashCode()).CountAsync(); 355 + var orderCount = await _db.Queryable<LqKdKdjlbEntity>().Where(o => o.Kdhy == customerId && o.IsEffective == StatusEnum.有效.GetHashCode() && o.Sfyj > 0).CountAsync();
356 var hasOrderRecord = orderCount > 0; 356 var hasOrderRecord = orderCount > 0;
357 var orderType = hasOrderRecord ? "repeat_order" : "first_order"; 357 var orderType = hasOrderRecord ? "repeat_order" : "first_order";
358 return new LqKhxxOrderTypeOutput 358 return new LqKhxxOrderTypeOutput
@@ -569,7 +569,7 @@ namespace NCC.Extend.LqKhxx @@ -569,7 +569,7 @@ namespace NCC.Extend.LqKhxx
569 // 查询退卡数据 569 // 查询退卡数据
570 var refundedData = await _db.Queryable<LqHytkMxEntity>() 570 var refundedData = await _db.Queryable<LqHytkMxEntity>()
571 .Where(x => baseItems.Select(b => b.Id).Contains(x.BillingItemId)) 571 .Where(x => baseItems.Select(b => b.Id).Contains(x.BillingItemId))
572 - // .Where(x => x.IsEffective == StatusEnum.有效.GetHashCode()) 572 + .Where(x => x.IsEffective == StatusEnum.有效.GetHashCode())
573 .GroupBy(x => x.BillingItemId) 573 .GroupBy(x => x.BillingItemId)
574 .Select(x => new 574 .Select(x => new
575 { 575 {
@@ -609,6 +609,8 @@ namespace NCC.Extend.LqKhxx @@ -609,6 +609,8 @@ namespace NCC.Extend.LqKhxx
609 { 609 {
610 item.RemainingCount = item.TotalPurchased - item.ConsumedCount - item.RefundedCount - item.DeductCount; 610 item.RemainingCount = item.TotalPurchased - item.ConsumedCount - item.RefundedCount - item.DeductCount;
611 } 611 }
  612 + //过滤剩余数量为0的品项,先暂时为不等于 0 ,因为现在有问题,会出现负数,后面再修改
  613 + remainingItems = remainingItems.Where(item => item.RemainingCount != 0).ToList();
612 return new MemberRemainingItemsOutput 614 return new MemberRemainingItemsOutput
613 { 615 {
614 MemberId = memberId, 616 MemberId = memberId,
netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
@@ -19,6 +19,7 @@ using NCC.Extend.Entitys.Dto.LqTkjlb; @@ -19,6 +19,7 @@ using NCC.Extend.Entitys.Dto.LqTkjlb;
19 using NCC.Extend.Entitys.Enum; 19 using NCC.Extend.Entitys.Enum;
20 using NCC.Extend.Entitys.lq_event; 20 using NCC.Extend.Entitys.lq_event;
21 using NCC.Extend.Entitys.lq_eventuser; 21 using NCC.Extend.Entitys.lq_eventuser;
  22 +using NCC.Extend.Entitys.lq_kd_kdjlb;
22 using NCC.Extend.Entitys.lq_khxx; 23 using NCC.Extend.Entitys.lq_khxx;
23 using NCC.Extend.Entitys.lq_mdxx; 24 using NCC.Extend.Entitys.lq_mdxx;
24 using NCC.Extend.Entitys.lq_tkjlb; 25 using NCC.Extend.Entitys.lq_tkjlb;
@@ -80,7 +81,7 @@ namespace NCC.Extend.LqTkjlb @@ -80,7 +81,7 @@ namespace NCC.Extend.LqTkjlb
80 teamName = p.TeamName, 81 teamName = p.TeamName,
81 eventId = p.EventId, 82 eventId = p.EventId,
82 eventName = SqlFunc.Subqueryable<LqEventEntity>().Where(e => e.Id == p.EventId).Select(e => e.EventName), 83 eventName = SqlFunc.Subqueryable<LqEventEntity>().Where(e => e.Id == p.EventId).Select(e => e.EventName),
83 - storeName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == p.StoreId).Select(u => u.Dm), 84 + storeName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == p.StoreId).Select(u => u.Dm)
84 }) 85 })
85 .FirstAsync(); 86 .FirstAsync();
86 87
@@ -187,6 +188,7 @@ namespace NCC.Extend.LqTkjlb @@ -187,6 +188,7 @@ namespace NCC.Extend.LqTkjlb
187 MemberInfo.Khlx = MemberTypeEnum.线索.GetHashCode().ToString(); 188 MemberInfo.Khlx = MemberTypeEnum.线索.GetHashCode().ToString();
188 MemberInfo.Dah = "GK" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); 189 MemberInfo.Dah = "GK" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
189 MemberInfo.Jdqd = "19.9卡"; 190 MemberInfo.Jdqd = "19.9卡";
  191 +
190 //找到input.expansionUserId的用户信息 192 //找到input.expansionUserId的用户信息
191 var userInfo = await _db.Queryable<UserEntity>().Where(u => u.Id == input.expansionUserId).FirstAsync(); 193 var userInfo = await _db.Queryable<UserEntity>().Where(u => u.Id == input.expansionUserId).FirstAsync();
192 //判断 岗位是否为健康师,如果是健康师,则设置拓客人员是健康师 194 //判断 岗位是否为健康师,如果是健康师,则设置拓客人员是健康师
@@ -523,5 +525,7 @@ namespace NCC.Extend.LqTkjlb @@ -523,5 +525,7 @@ namespace NCC.Extend.LqTkjlb
523 return result.OrderByDescending(t => t.totalCount).ToList(); 525 return result.OrderByDescending(t => t.totalCount).ToList();
524 } 526 }
525 #endregion 527 #endregion
  528 +
  529 +
526 } 530 }
527 } 531 }
netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
@@ -20,6 +20,7 @@ using NCC.Extend.Entitys.Dto.LqXhHyhk; @@ -20,6 +20,7 @@ using NCC.Extend.Entitys.Dto.LqXhHyhk;
20 using NCC.Extend.Entitys.Dto.LqXhJksyj; 20 using NCC.Extend.Entitys.Dto.LqXhJksyj;
21 using NCC.Extend.Entitys.Dto.LqXhKjbsyj; 21 using NCC.Extend.Entitys.Dto.LqXhKjbsyj;
22 using NCC.Extend.Entitys.Dto.LqXhPxmx; 22 using NCC.Extend.Entitys.Dto.LqXhPxmx;
  23 +using NCC.Extend.Entitys.Enum;
23 using NCC.Extend.Entitys.lq_kd_kdjlb; 24 using NCC.Extend.Entitys.lq_kd_kdjlb;
24 using NCC.Extend.Entitys.lq_kd_pxmx; 25 using NCC.Extend.Entitys.lq_kd_pxmx;
25 using NCC.Extend.Entitys.lq_khxx; 26 using NCC.Extend.Entitys.lq_khxx;
@@ -521,6 +522,12 @@ namespace NCC.Extend.LqXhHyhk @@ -521,6 +522,12 @@ namespace NCC.Extend.LqXhHyhk
521 { 522 {
522 //开启事务 523 //开启事务
523 _db.BeginTran(); 524 _db.BeginTran();
  525 + //查询记录
  526 + var LqXhHyhkInfo = await _db.Queryable<LqXhHyhkEntity>().Where(p => p.Id == id && p.IsEffective == StatusEnum.有效.GetHashCode()).FirstAsync();
  527 + if (LqXhHyhkInfo == null)
  528 + {
  529 + throw NCCException.Oh(ErrorCode.COM1005, "耗卡记录不存在或已作废");
  530 + }
524 entity.UpdateTime = DateTime.Now; 531 entity.UpdateTime = DateTime.Now;
525 //更新会员耗卡记录 532 //更新会员耗卡记录
526 await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); 533 await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
@@ -528,57 +535,31 @@ namespace NCC.Extend.LqXhHyhk @@ -528,57 +535,31 @@ namespace NCC.Extend.LqXhHyhk
528 //清空原有数据 535 //清空原有数据
529 await _db.Deleteable<LqXhJksyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); 536 await _db.Deleteable<LqXhJksyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync();
530 await _db.Deleteable<LqXhKjbsyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); 537 await _db.Deleteable<LqXhKjbsyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync();
531 -  
532 - // 注意:品项明细表不做删除操作,只更新或新增  
533 - // await _db.Deleteable<LqXhPxmxEntity>().Where(u => u.ConsumeInfoId == id).ExecuteCommandAsync();  
534 - 538 + await _db.Deleteable<LqXhPxmxEntity>().Where(u => u.ConsumeInfoId == id).ExecuteCommandAsync();
535 // 收集所有需要插入的实体,然后批量插入 539 // 收集所有需要插入的实体,然后批量插入
536 var allPxmxEntities = new List<LqXhPxmxEntity>(); 540 var allPxmxEntities = new List<LqXhPxmxEntity>();
537 var allJksyjEntities = new List<LqXhJksyjEntity>(); 541 var allJksyjEntities = new List<LqXhJksyjEntity>();
538 var allKjbsyjEntities = new List<LqXhKjbsyjEntity>(); 542 var allKjbsyjEntities = new List<LqXhKjbsyjEntity>();
539 -  
540 // 处理品项明细列表 543 // 处理品项明细列表
541 if (input.lqXhPxmxList != null && input.lqXhPxmxList.Any()) 544 if (input.lqXhPxmxList != null && input.lqXhPxmxList.Any())
542 { 545 {
543 foreach (var item in input.lqXhPxmxList) 546 foreach (var item in input.lqXhPxmxList)
544 { 547 {
545 - // 检查品项明细是否已存在  
546 - var existingPxmx = await _db.Queryable<LqXhPxmxEntity>()  
547 - .Where(p => p.Id == item.id)  
548 - .FirstAsync();  
549 -  
550 - LqXhPxmxEntity lqXhPxmxEntity;  
551 - if (existingPxmx != null)  
552 - {  
553 - // 更新现有记录  
554 - lqXhPxmxEntity = existingPxmx;  
555 - // 注意:LqXhPxmxEntity 没有 UpdateTime 字段  
556 - lqXhPxmxEntity.MemberId = entity.Hy;  
557 - lqXhPxmxEntity.ProjectNumber = item.projectNumber ?? 1;  
558 - lqXhPxmxEntity.TotalPrice = (decimal)(item.pxjg * (item.projectNumber ?? 1));  
559 - lqXhPxmxEntity.Px = item.px;  
560 - lqXhPxmxEntity.Pxmc = item.pxmc;  
561 - lqXhPxmxEntity.Pxjg = item.pxjg;  
562 - lqXhPxmxEntity.SourceType = item.sourceType;  
563 - }  
564 - else 548 + // 创建品项明细实体
  549 + var lqXhPxmxEntity = new LqXhPxmxEntity
565 { 550 {
566 - // 创建新记录  
567 - lqXhPxmxEntity = new LqXhPxmxEntity  
568 - {  
569 - Id = YitIdHelper.NextId().ToString(),  
570 - ConsumeInfoId = entity.Id,  
571 - BillingItemId = item.billingItemId,  
572 - CreateTIme = DateTime.Now,  
573 - MemberId = entity.Hy,  
574 - ProjectNumber = item.projectNumber ?? 1,  
575 - TotalPrice = (decimal)(item.pxjg * (item.projectNumber ?? 1)),  
576 - Px = item.px,  
577 - Pxmc = item.pxmc,  
578 - Pxjg = item.pxjg,  
579 - SourceType = item.sourceType,  
580 - };  
581 - } 551 + Id = YitIdHelper.NextId().ToString(),
  552 + ConsumeInfoId = input.id,
  553 + BillingItemId = item.billingItemId,
  554 + CreateTIme = DateTime.Now,
  555 + MemberId = entity.Hy,
  556 + ProjectNumber = item.projectNumber ?? 1,
  557 + TotalPrice = (decimal)(item.pxjg * (item.projectNumber ?? 1)),
  558 + Px = item.px,
  559 + Pxmc = item.pxmc,
  560 + Pxjg = item.pxjg,
  561 + SourceType = item.sourceType,
  562 + };
582 allPxmxEntities.Add(lqXhPxmxEntity); 563 allPxmxEntities.Add(lqXhPxmxEntity);
583 564
584 // 收集该品项关联的健康师业绩 565 // 收集该品项关联的健康师业绩
@@ -590,7 +571,7 @@ namespace NCC.Extend.LqXhHyhk @@ -590,7 +571,7 @@ namespace NCC.Extend.LqXhHyhk
590 new LqXhJksyjEntity 571 new LqXhJksyjEntity
591 { 572 {
592 Id = YitIdHelper.NextId().ToString(), 573 Id = YitIdHelper.NextId().ToString(),
593 - Glkdbh = entity.Id, 574 + Glkdbh = input.id,
594 Jks = ijks_tem.jks, 575 Jks = ijks_tem.jks,
595 Jksxm = ijks_tem.jksxm, 576 Jksxm = ijks_tem.jksxm,
596 Jkszh = ijks_tem.jkszh, 577 Jkszh = ijks_tem.jkszh,
@@ -614,7 +595,7 @@ namespace NCC.Extend.LqXhHyhk @@ -614,7 +595,7 @@ namespace NCC.Extend.LqXhHyhk
614 new LqXhKjbsyjEntity 595 new LqXhKjbsyjEntity
615 { 596 {
616 Id = YitIdHelper.NextId().ToString(), 597 Id = YitIdHelper.NextId().ToString(),
617 - Glkdbh = entity.Id, 598 + Glkdbh = input.id,
618 Kjbls = ikjbs_tem.kjbls, 599 Kjbls = ikjbs_tem.kjbls,
619 Kjblsxm = ikjbs_tem.kjblsxm, 600 Kjblsxm = ikjbs_tem.kjblsxm,
620 Kjblszh = ikjbs_tem.kjblszh, 601 Kjblszh = ikjbs_tem.kjblszh,
@@ -629,22 +610,10 @@ namespace NCC.Extend.LqXhHyhk @@ -629,22 +610,10 @@ namespace NCC.Extend.LqXhHyhk
629 } 610 }
630 } 611 }
631 } 612 }
632 -  
633 // 批量插入品项明细 613 // 批量插入品项明细
634 if (allPxmxEntities.Any()) 614 if (allPxmxEntities.Any())
635 { 615 {
636 - // 分别处理插入和更新  
637 - var existingEntities = allPxmxEntities.Where(e => !string.IsNullOrEmpty(e.Id)).ToList();  
638 - var newEntities = allPxmxEntities.Where(e => string.IsNullOrEmpty(e.Id)).ToList();  
639 -  
640 - if (existingEntities.Any())  
641 - {  
642 - await _db.Updateable(existingEntities).ExecuteCommandAsync();  
643 - }  
644 - if (newEntities.Any())  
645 - {  
646 - await _db.Insertable(newEntities).ExecuteCommandAsync();  
647 - } 616 + await _db.Insertable(allPxmxEntities).ExecuteCommandAsync();
648 } 617 }
649 // 批量插入健康师业绩 618 // 批量插入健康师业绩
650 if (allJksyjEntities.Any()) 619 if (allJksyjEntities.Any())
@@ -656,8 +625,7 @@ namespace NCC.Extend.LqXhHyhk @@ -656,8 +625,7 @@ namespace NCC.Extend.LqXhHyhk
656 { 625 {
657 await _db.Insertable(allKjbsyjEntities).ExecuteCommandAsync(); 626 await _db.Insertable(allKjbsyjEntities).ExecuteCommandAsync();
658 } 627 }
659 -  
660 - //关闭事务 628 + // 提交事务
661 _db.CommitTran(); 629 _db.CommitTran();
662 } 630 }
663 catch (Exception) 631 catch (Exception)
@@ -707,5 +675,198 @@ namespace NCC.Extend.LqXhHyhk @@ -707,5 +675,198 @@ namespace NCC.Extend.LqXhHyhk
707 } 675 }
708 } 676 }
709 #endregion 677 #endregion
  678 +
  679 + #region 查询健康师消耗业绩列表
  680 + /// <summary>
  681 + /// 查询健康师业绩列表
  682 + /// </summary>
  683 + /// <param name="input">查询参数</param>
  684 + /// <returns>分页的健康师业绩列表</returns>
  685 + /// <remarks>
  686 + /// 查询健康师业绩记录,支持分页和时间筛选
  687 + ///
  688 + /// 示例请求:
  689 + /// ```json
  690 + /// {
  691 + /// "glkdbh": "123456789",
  692 + /// "jksId": "健康师ID",
  693 + /// "startTime": "2025-01-01T00:00:00",
  694 + /// "endTime": "2025-01-31T23:59:59",
  695 + /// "currentPage": 1,
  696 + /// "pageSize": 10,
  697 + /// "sidx": "yjsj",
  698 + /// "sort": "desc"
  699 + /// }
  700 + /// ```
  701 + ///
  702 + /// 参数说明:
  703 + /// - glkdbh: 开单记录ID(可选)
  704 + /// - jksId: 健康师ID(可选)
  705 + /// - startTime: 查询开始时间(可选)
  706 + /// - endTime: 查询结束时间(可选)
  707 + /// - currentPage: 当前页码
  708 + /// - pageSize: 每页大小
  709 + /// </remarks>
  710 + /// <response code="200">成功获取健康师业绩列表</response>
  711 + /// <response code="400">请求参数错误</response>
  712 + /// <response code="500">服务器内部错误</response>
  713 + [HttpGet("GetJksyjList")]
  714 + public async Task<dynamic> GetJksyjList([FromQuery] LqXhJksyjQueryInput input)
  715 + {
  716 + try
  717 + {
  718 + var sidx = string.IsNullOrEmpty(input.sidx) ? "yjsj" : input.sidx;
  719 + var sort = string.IsNullOrEmpty(input.sort) ? "desc" : input.sort;
  720 + var data = await _db.Queryable<LqXhJksyjEntity>()
  721 + .WhereIF(!string.IsNullOrEmpty(input.Glkdbh), w => w.Glkdbh == input.Glkdbh)
  722 + .WhereIF(!string.IsNullOrEmpty(input.JksId), w => w.Jks == input.JksId)
  723 + .WhereIF(input.StartTime.HasValue, w => w.Yjsj >= input.StartTime.Value)
  724 + .WhereIF(input.EndTime.HasValue, w => w.Yjsj <= input.EndTime.Value)
  725 + .Where(w => w.IsEffective == StatusEnum.有效.GetHashCode())
  726 + .Select(it => new LqXhJksyjInfoOutput
  727 + {
  728 + id = it.Id,
  729 + glkdbh = it.Glkdbh,
  730 + jks = it.Jks,
  731 + jksxm = it.Jksxm,
  732 + jkszh = it.Jkszh,
  733 + jksyj = it.Jksyj.ToString(),
  734 + yjsj = it.Yjsj,
  735 + jsjId = it.JsjId,
  736 + kdpxid = it.Kdpxid,
  737 + laborCost = it.LaborCost,
  738 + kdpxNumber = it.KdpxNumber,
  739 + storeName = SqlFunc.Subqueryable<LqXhHyhkEntity>().Where(w => w.Id == it.Glkdbh).Select(w => w.Mdmc),
  740 + memberId = SqlFunc.Subqueryable<LqXhHyhkEntity>().Where(w => w.Id == it.Glkdbh).Select(w => w.Hy),
  741 + memberName = SqlFunc.Subqueryable<LqXhHyhkEntity>().Where(w => w.Id == it.Glkdbh).Select(w => w.Hymc),
  742 + })
  743 + .MergeTable()
  744 + .OrderBy(sidx + " " + sort)
  745 + .ToPagedListAsync(input.currentPage, input.pageSize);
  746 +
  747 + return PageResult<LqXhJksyjInfoOutput>.SqlSugarPageResult(data);
  748 + }
  749 + catch (Exception ex)
  750 + {
  751 + throw NCCException.Oh($"获取健康师业绩列表失败: {ex.Message}");
  752 + }
  753 + }
  754 + #endregion
  755 +
  756 + #region 耗卡记录作废
  757 + /// <summary>
  758 + /// 耗卡记录作废
  759 + /// </summary>
  760 + /// <param name="id">耗卡记录ID</param>
  761 + /// <returns></returns>
  762 + [HttpPut("CancelCardUsageRecord/{id}")]
  763 + public async Task<dynamic> CancelCardUsageRecord(string id)
  764 + {
  765 + try
  766 + {
  767 + //开启事务
  768 + _db.BeginTran();
  769 + //查询消耗记录表信息
  770 + var LqhyhkInfo = await _db.Queryable<LqXhHyhkEntity>().Where(p => p.Id == id && p.IsEffective == StatusEnum.有效.GetHashCode()).FirstAsync();
  771 + if (LqhyhkInfo == null)
  772 + {
  773 + throw NCCException.Oh(ErrorCode.COM1005, "耗卡记录不存在或已作废");
  774 + }
  775 + //更新耗卡记录状态
  776 + LqhyhkInfo.IsEffective = StatusEnum.无效.GetHashCode();
  777 + await _db.Updateable(LqhyhkInfo).ExecuteCommandAsync();
  778 + //更新品项明细表状态
  779 + await _db.Updateable<LqXhPxmxEntity>().SetColumns(it => new LqXhPxmxEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.ConsumeInfoId == id).ExecuteCommandAsync();
  780 + //更新健康师业绩表状态
  781 + await _db.Updateable<LqXhJksyjEntity>().SetColumns(it => new LqXhJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Glkdbh == id).ExecuteCommandAsync();
  782 + //更新科技部老师业绩表状态
  783 + await _db.Updateable<LqXhKjbsyjEntity>().SetColumns(it => new LqXhKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Glkdbh == id).ExecuteCommandAsync();
  784 + //关闭事务
  785 + _db.CommitTran();
  786 + return LqhyhkInfo;
  787 + }
  788 + catch (Exception)
  789 + {
  790 + //回滚事务
  791 + _db.RollbackTran();
  792 + throw NCCException.Oh(ErrorCode.COM1001);
  793 + }
  794 + }
  795 + #endregion
  796 +
  797 + #region 获取某个会员的耗卡记录
  798 + /// <summary>
  799 + /// 获取某个会员的耗卡记录(分页)
  800 + /// </summary>
  801 + /// <param name="input">查询参数</param>
  802 + /// <returns></returns>
  803 + [HttpGet("GetMemberCardUsageRecord")]
  804 + public async Task<dynamic> GetMemberCardUsageRecord([FromQuery] LqXhHyhkMemberCardUsageQueryInput input)
  805 + {
  806 + try
  807 + {
  808 + // 参数验证
  809 + if (string.IsNullOrEmpty(input.MemberId))
  810 + {
  811 + throw NCCException.Oh("会员ID不能为空");
  812 + }
  813 + // 分页查询会员耗卡记录
  814 + var data = await _db.Queryable<LqXhHyhkEntity>()
  815 + .Where(p => p.Hy == input.MemberId && p.IsEffective == StatusEnum.有效.GetHashCode())
  816 + .WhereIF(!string.IsNullOrEmpty(input.StoreId), p => p.Md == input.StoreId)
  817 + .WhereIF(input.StartTime.HasValue, p => p.Hksj >= input.StartTime.Value)
  818 + .WhereIF(input.EndTime.HasValue, p => p.Hksj <= input.EndTime.Value)
  819 + .Select(it => new LqXhHyhkMemberCardUsageOutput
  820 + {
  821 + Id = it.Id,
  822 + MemberId = it.Hy,
  823 + MemberName = it.Hymc,
  824 + StoreId = it.Md,
  825 + StoreName = it.Mdmc,
  826 + UsageDate = it.Hksj,
  827 + TotalAmount = it.Xfje,
  828 + Remarks = it.SignatureFile,
  829 + CreateTime = it.CreateTime
  830 + })
  831 + .MergeTable()
  832 + .OrderBy((input.sidx == null ? "UsageDate" : input.sidx) + " " + (input.sort ?? "desc"))
  833 + .ToPagedListAsync(input.currentPage, input.pageSize);
  834 +
  835 + // 获取当前页耗卡记录ID,直接查询对应的品项明细
  836 + if (data.list.Any())
  837 + {
  838 + var recordIds = data.list.Select(r => r.Id).ToList();
  839 + // 批量查询当前页记录的所有品项明细
  840 + var itemDetails = await _db.Queryable<LqXhPxmxEntity>().Where(w => recordIds.Contains(w.ConsumeInfoId) && w.IsEffective == StatusEnum.有效.GetHashCode()).ToListAsync();
  841 + // 按耗卡记录ID分组明细
  842 + var detailsGrouped = itemDetails.GroupBy(d => d.ConsumeInfoId).ToDictionary(g => g.Key, g => g.ToList());
  843 + // 为每个记录添加品项明细
  844 + foreach (var record in data.list)
  845 + {
  846 + if (detailsGrouped.ContainsKey(record.Id))
  847 + {
  848 + record.ItemDetails = detailsGrouped[record.Id].Select(detail => new LqXhHyhkMemberCardUsageItemDetail
  849 + {
  850 + Id = detail.Id,
  851 + ItemId = detail.Px,
  852 + ItemName = detail.Pxmc,
  853 + UnitPrice = detail.Pxjg,
  854 + ProjectNumber = detail.ProjectNumber,
  855 + TotalPrice = detail.TotalPrice,
  856 + SourceType = detail.SourceType,
  857 + CreateTime = detail.CreateTIme
  858 + }).ToList();
  859 + }
  860 + }
  861 + }
  862 + return PageResult<LqXhHyhkMemberCardUsageOutput>.SqlSugarPageResult(data);
  863 + }
  864 + catch (Exception ex)
  865 + {
  866 + throw NCCException.Oh($"获取会员耗卡记录失败: {ex.Message}");
  867 + }
  868 + }
  869 + #endregion
  870 +
710 } 871 }
711 } 872 }
netcore/src/Modularity/Extend/NCC.Extend/LqXhmxbService.cs deleted
1 -using System;  
2 -using System.Collections.Generic;  
3 -using System.Linq;  
4 -using System.Threading.Tasks;  
5 -using Mapster;  
6 -using Microsoft.AspNetCore.Mvc;  
7 -using NCC.ClayObject;  
8 -using NCC.Common.Configuration;  
9 -using NCC.Common.Core.Manager;  
10 -using NCC.Common.Enum;  
11 -using NCC.Common.Extension;  
12 -using NCC.Common.Filter;  
13 -using NCC.Common.Helper;  
14 -using NCC.Common.Model.NPOI;  
15 -using NCC.DataEncryption;  
16 -using NCC.Dependency;  
17 -using NCC.DynamicApiController;  
18 -using NCC.Extend.Entitys.Dto.LqXhmxb;  
19 -using NCC.Extend.Entitys.lq_xhmxb;  
20 -using NCC.Extend.Interfaces.LqXhmxb;  
21 -using NCC.FriendlyException;  
22 -using NCC.JsonSerialization;  
23 -using SqlSugar;  
24 -using Yitter.IdGenerator;  
25 -  
26 -namespace NCC.Extend.LqXhmxb  
27 -{  
28 - /// <summary>  
29 - /// 消耗明细表服务  
30 - /// </summary>  
31 - [ApiDescriptionSettings(Tag = "Extend", Name = "LqXhmxb", Order = 200)]  
32 - [Route("api/Extend/[controller]")]  
33 - public class LqXhmxbService : ILqXhmxbService, IDynamicApiController, ITransient  
34 - {  
35 - private readonly ISqlSugarRepository<LqXhmxbEntity> _lqXhmxbRepository;  
36 - private readonly SqlSugarScope _db;  
37 - private readonly IUserManager _userManager;  
38 -  
39 - /// <summary>  
40 - /// 初始化一个<see cref="LqXhmxbService"/>类型的新实例  
41 - /// </summary>  
42 - public LqXhmxbService(ISqlSugarRepository<LqXhmxbEntity> lqXhmxbRepository, IUserManager userManager)  
43 - {  
44 - _lqXhmxbRepository = lqXhmxbRepository;  
45 - _db = _lqXhmxbRepository.Context;  
46 - _userManager = userManager;  
47 - }  
48 -  
49 - /// <summary>  
50 - /// 获取消耗明细表  
51 - /// </summary>  
52 - /// <param name="id">参数</param>  
53 - /// <returns></returns>  
54 - [HttpGet("{id}")]  
55 - public async Task<dynamic> GetInfo(string id)  
56 - {  
57 - var entity = await _db.Queryable<LqXhmxbEntity>().FirstAsync(p => p.Id == id);  
58 - var output = entity.Adapt<LqXhmxbInfoOutput>();  
59 - return output;  
60 - }  
61 -  
62 - /// <summary>  
63 - /// 获取消耗明细表列表  
64 - /// </summary>  
65 - /// <param name="input">请求参数</param>  
66 - /// <returns></returns>  
67 - [HttpGet("")]  
68 - public async Task<dynamic> GetList([FromQuery] LqXhmxbListQueryInput input)  
69 - {  
70 - var sidx = input.sidx == null ? "id" : input.sidx;  
71 - var data = await _db.Queryable<LqXhmxbEntity>()  
72 - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))  
73 - .WhereIF(!string.IsNullOrEmpty(input.mdbh), p => p.Mdbh.Contains(input.mdbh))  
74 - .WhereIF(!string.IsNullOrEmpty(input.mdmc), p => p.Mdmc.Contains(input.mdmc))  
75 - .WhereIF(!string.IsNullOrEmpty(input.bmbh), p => p.Bmbh.Contains(input.bmbh))  
76 - .WhereIF(!string.IsNullOrEmpty(input.bmmc), p => p.Bmmc.Contains(input.bmmc))  
77 - .WhereIF(!string.IsNullOrEmpty(input.ygbh), p => p.Ygbh.Contains(input.ygbh))  
78 - .WhereIF(!string.IsNullOrEmpty(input.ygmc), p => p.Ygmc.Contains(input.ygmc))  
79 - .WhereIF(!string.IsNullOrEmpty(input.xms), p => p.Xms.Contains(input.xms))  
80 - .WhereIF(!string.IsNullOrEmpty(input.xh), p => p.Xh.Contains(input.xh))  
81 - .WhereIF(!string.IsNullOrEmpty(input.sg), p => p.Sg.Contains(input.sg))  
82 - .WhereIF(!string.IsNullOrEmpty(input.qtsg1), p => p.Qtsg1.Contains(input.qtsg1))  
83 - .WhereIF(!string.IsNullOrEmpty(input.qtsg2), p => p.Qtsg2.Contains(input.qtsg2))  
84 - .WhereIF(!string.IsNullOrEmpty(input.qtsg3), p => p.Qtsg3.Contains(input.qtsg3))  
85 - .WhereIF(!string.IsNullOrEmpty(input.sghj), p => p.Sghj.Contains(input.sghj))  
86 - .Select(it => new LqXhmxbListOutput  
87 - {  
88 - id = it.Id,  
89 - mdbh = it.Mdbh,  
90 - mdmc = it.Mdmc,  
91 - bmbh = it.Bmbh,  
92 - bmmc = it.Bmmc,  
93 - ygbh = it.Ygbh,  
94 - ygmc = it.Ygmc,  
95 - xms = it.Xms,  
96 - xh = it.Xh,  
97 - sg = it.Sg,  
98 - qtsg1 = it.Qtsg1,  
99 - qtsg2 = it.Qtsg2,  
100 - qtsg3 = it.Qtsg3,  
101 - sghj = it.Sghj,  
102 - })  
103 - .MergeTable()  
104 - .OrderBy(sidx + " " + input.sort)  
105 - .ToPagedListAsync(input.currentPage, input.pageSize);  
106 - return PageResult<LqXhmxbListOutput>.SqlSugarPageResult(data);  
107 - }  
108 -  
109 - /// <summary>  
110 - /// 新建消耗明细表  
111 - /// </summary>  
112 - /// <param name="input">参数</param>  
113 - /// <returns></returns>  
114 - [HttpPost("")]  
115 - public async Task Create([FromBody] LqXhmxbCrInput input)  
116 - {  
117 - var userInfo = await _userManager.GetUserInfo();  
118 - var entity = input.Adapt<LqXhmxbEntity>();  
119 - entity.Id = YitIdHelper.NextId().ToString();  
120 - var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync();  
121 - if (!(isOk > 0))  
122 - throw NCCException.Oh(ErrorCode.COM1000);  
123 - }  
124 -  
125 - /// <summary>  
126 - /// 获取消耗明细表无分页列表  
127 - /// </summary>  
128 - /// <param name="input">请求参数</param>  
129 - /// <returns></returns>  
130 - [NonAction]  
131 - public async Task<dynamic> GetNoPagingList([FromQuery] LqXhmxbListQueryInput input)  
132 - {  
133 - var sidx = input.sidx == null ? "id" : input.sidx;  
134 - var data = await _db.Queryable<LqXhmxbEntity>()  
135 - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id))  
136 - .WhereIF(!string.IsNullOrEmpty(input.mdbh), p => p.Mdbh.Contains(input.mdbh))  
137 - .WhereIF(!string.IsNullOrEmpty(input.mdmc), p => p.Mdmc.Contains(input.mdmc))  
138 - .WhereIF(!string.IsNullOrEmpty(input.bmbh), p => p.Bmbh.Contains(input.bmbh))  
139 - .WhereIF(!string.IsNullOrEmpty(input.bmmc), p => p.Bmmc.Contains(input.bmmc))  
140 - .WhereIF(!string.IsNullOrEmpty(input.ygbh), p => p.Ygbh.Contains(input.ygbh))  
141 - .WhereIF(!string.IsNullOrEmpty(input.ygmc), p => p.Ygmc.Contains(input.ygmc))  
142 - .WhereIF(!string.IsNullOrEmpty(input.xms), p => p.Xms.Contains(input.xms))  
143 - .WhereIF(!string.IsNullOrEmpty(input.xh), p => p.Xh.Contains(input.xh))  
144 - .WhereIF(!string.IsNullOrEmpty(input.sg), p => p.Sg.Contains(input.sg))  
145 - .WhereIF(!string.IsNullOrEmpty(input.qtsg1), p => p.Qtsg1.Contains(input.qtsg1))  
146 - .WhereIF(!string.IsNullOrEmpty(input.qtsg2), p => p.Qtsg2.Contains(input.qtsg2))  
147 - .WhereIF(!string.IsNullOrEmpty(input.qtsg3), p => p.Qtsg3.Contains(input.qtsg3))  
148 - .WhereIF(!string.IsNullOrEmpty(input.sghj), p => p.Sghj.Contains(input.sghj))  
149 - .Select(it => new LqXhmxbListOutput  
150 - {  
151 - id = it.Id,  
152 - mdbh = it.Mdbh,  
153 - mdmc = it.Mdmc,  
154 - bmbh = it.Bmbh,  
155 - bmmc = it.Bmmc,  
156 - ygbh = it.Ygbh,  
157 - ygmc = it.Ygmc,  
158 - xms = it.Xms,  
159 - xh = it.Xh,  
160 - sg = it.Sg,  
161 - qtsg1 = it.Qtsg1,  
162 - qtsg2 = it.Qtsg2,  
163 - qtsg3 = it.Qtsg3,  
164 - sghj = it.Sghj,  
165 - })  
166 - .MergeTable()  
167 - .OrderBy(sidx + " " + input.sort)  
168 - .ToListAsync();  
169 - return data;  
170 - }  
171 -  
172 - /// <summary>  
173 - /// 导出消耗明细表  
174 - /// </summary>  
175 - /// <param name="input">请求参数</param>  
176 - /// <returns></returns>  
177 - [HttpGet("Actions/Export")]  
178 - public async Task<dynamic> Export([FromQuery] LqXhmxbListQueryInput input)  
179 - {  
180 - var userInfo = await _userManager.GetUserInfo();  
181 - var exportData = new List<LqXhmxbListOutput>();  
182 - if (input.dataType == 0)  
183 - {  
184 - var data = Clay.Object(await this.GetList(input));  
185 - exportData = data.Solidify<PageResult<LqXhmxbListOutput>>().list;  
186 - }  
187 - else  
188 - {  
189 - exportData = await this.GetNoPagingList(input);  
190 - }  
191 - List<ParamsModel> paramList =  
192 - "[{\"value\":\"消耗编号\",\"field\":\"id\"},{\"value\":\"门店编号\",\"field\":\"mdbh\"},{\"value\":\"门店名称\",\"field\":\"mdmc\"},{\"value\":\"部门编号\",\"field\":\"bmbh\"},{\"value\":\"部门名称\",\"field\":\"bmmc\"},{\"value\":\"员工编号\",\"field\":\"ygbh\"},{\"value\":\"员工名称\",\"field\":\"ygmc\"},{\"value\":\"项目数\",\"field\":\"xms\"},{\"value\":\"消耗\",\"field\":\"xh\"},{\"value\":\"手工\",\"field\":\"sg\"},{\"value\":\"其它手工1\",\"field\":\"qtsg1\"},{\"value\":\"其它手工2\",\"field\":\"qtsg2\"},{\"value\":\"其它手工3\",\"field\":\"qtsg3\"},{\"value\":\"手工合计\",\"field\":\"sghj\"},]".ToList<ParamsModel>();  
193 - ExcelConfig excelconfig = new ExcelConfig();  
194 - excelconfig.FileName = "消耗明细表.xls";  
195 - excelconfig.HeadFont = "微软雅黑";  
196 - excelconfig.HeadPoint = 10;  
197 - excelconfig.IsAllSizeColumn = true;  
198 - excelconfig.ColumnModel = new List<ExcelColumnModel>();  
199 - List<string> selectKeyList = input.selectKey.Split(',').ToList();  
200 - foreach (var item in selectKeyList)  
201 - {  
202 - var isExist = paramList.Find(p => p.field == item);  
203 - if (isExist != null)  
204 - {  
205 - excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value });  
206 - }  
207 - }  
208 - var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName;  
209 - ExcelExportHelper<LqXhmxbListOutput>.Export(exportData, excelconfig, addPath);  
210 - var fileName = _userManager.UserId + "|" + addPath + "|xls";  
211 - var output = new { name = excelconfig.FileName, url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") };  
212 - return output;  
213 - }  
214 -  
215 - /// <summary>  
216 - /// 批量删除消耗明细表  
217 - /// </summary>  
218 - /// <param name="ids">主键数组</param>  
219 - /// <returns></returns>  
220 - [HttpPost("batchRemove")]  
221 - public async Task BatchRemove([FromBody] List<string> ids)  
222 - {  
223 - var entitys = await _db.Queryable<LqXhmxbEntity>().In(it => it.Id, ids).ToListAsync();  
224 - if (entitys.Count > 0)  
225 - {  
226 - try  
227 - {  
228 - //开启事务  
229 - _db.BeginTran();  
230 - //批量删除消耗明细表  
231 - await _db.Deleteable<LqXhmxbEntity>().In(d => d.Id, ids).ExecuteCommandAsync();  
232 - //关闭事务  
233 - _db.CommitTran();  
234 - }  
235 - catch (Exception)  
236 - {  
237 - //回滚事务  
238 - _db.RollbackTran();  
239 - throw NCCException.Oh(ErrorCode.COM1002);  
240 - }  
241 - }  
242 - }  
243 -  
244 - /// <summary>  
245 - /// 更新消耗明细表  
246 - /// </summary>  
247 - /// <param name="id">主键</param>  
248 - /// <param name="input">参数</param>  
249 - /// <returns></returns>  
250 - [HttpPut("{id}")]  
251 - public async Task Update(string id, [FromBody] LqXhmxbUpInput input)  
252 - {  
253 - var entity = input.Adapt<LqXhmxbEntity>();  
254 - var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();  
255 - if (!(isOk > 0))  
256 - throw NCCException.Oh(ErrorCode.COM1001);  
257 - }  
258 -  
259 - /// <summary>  
260 - /// 删除消耗明细表  
261 - /// </summary>  
262 - /// <returns></returns>  
263 - [HttpDelete("{id}")]  
264 - public async Task Delete(string id)  
265 - {  
266 - var entity = await _db.Queryable<LqXhmxbEntity>().FirstAsync(p => p.Id == id);  
267 - _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005);  
268 - var isOk = await _db.Deleteable<LqXhmxbEntity>().Where(d => d.Id == id).ExecuteCommandAsync();  
269 - if (!(isOk > 0))  
270 - throw NCCException.Oh(ErrorCode.COM1002);  
271 - }  
272 - }  
273 -}  
netcore/src/Modularity/Extend/NCC.Extend/Utils/LqKdKdjlbStringGenerator.cs
@@ -46,8 +46,9 @@ namespace NCC.Extend.Utils @@ -46,8 +46,9 @@ namespace NCC.Extend.Utils
46 var customerName = GetCustomerName(entity.kdhy); 46 var customerName = GetCustomerName(entity.kdhy);
47 sb.AppendLine($"⏩顾客姓名:{customerName}"); 47 sb.AppendLine($"⏩顾客姓名:{customerName}");
48 // 健康师:王维 48 // 健康师:王维
49 - var healthTeachers = HealthInstructorNames.TrimEnd(',');  
50 - sb.AppendLine($"⏩健康师:{healthTeachers}"); 49 + //这里需要把HealthInstructorNames去重,HealthInstructorNames格式为张三、李四、张三、
  50 + var healthTeachers = HealthInstructorNames.Split(',', StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray();
  51 + sb.AppendLine($"⏩健康师:{string.Join("、", healthTeachers)}");
51 52
52 // 活动方案:532工程 53 // 活动方案:532工程
53 sb.AppendLine($"⏩活动方案:{entity.pxxx ?? "无"}"); 54 sb.AppendLine($"⏩活动方案:{entity.pxxx ?? "无"}");