瀏覽代碼

核算单价菜单

lamphua 3 週之前
父節點
當前提交
3258e1ddc6

+ 12
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcWageController.java 查看文件

@@ -139,7 +139,18 @@ public class CmcWageController extends BaseController
139 139
             List<CmcWage> cmcWageList = util.importExcel(file.getInputStream());
140 140
             for (CmcWage cmcWage : cmcWageList) {
141 141
                 cmcWage.setUserId(cmcWage.getUserId() + 1);
142
-                cmcWageService.insertCmcWage(cmcWage);
142
+                CmcWage wage = new CmcWage();
143
+                wage.setUserId(cmcWage.getUserId());
144
+                wage.setPayMonth(cmcWage.getPayMonth());
145
+                List<CmcWage> wageList = cmcWageService.selectCmcWageList(wage);
146
+                if (wageList.size() > 0) {
147
+                    wage.setWageId(wageList.get(0).getWageId());
148
+                    wage.setSocialSecurityUnit(cmcWage.getSocialSecurityUnit());
149
+                    wage.setHouseFund(cmcWage.getHouseFund());
150
+                    cmcWageService.updateCmcWage(wage);
151
+                }
152
+                else
153
+                    cmcWageService.insertCmcWage(cmcWage);
143 154
             }
144 155
             return AjaxResult.success("上传成功");
145 156
         }

+ 2
- 2
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcCheckPriceMapper.xml 查看文件

@@ -25,8 +25,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
25 25
         <include refid="selectCmcCheckPriceVo"/>
26 26
         <where>  
27 27
             <if test="workType != null  and workType != ''"> and work_type = #{workType}</if>
28
-            <if test="workItem != null  and workItem != ''"> and work_item = #{workItem}</if>
29
-            <if test="subItem != null  and subItem != ''"> and sub_item = #{subItem}</if>
28
+            <if test="workItem != null  and workItem != ''"> and work_item like concat('%', #{workItem}, '%')</if>
29
+            <if test="subItem != null  and subItem != ''"> and sub_item like concat('%', #{subItem}, '%')</if>
30 30
             <if test="pricePercentage != null "> and price_percentage = #{pricePercentage}</if>
31 31
             <if test="scaleGrade != null  and scaleGrade != ''"> and scale_grade = #{scaleGrade}</if>
32 32
             <if test="unit != null  and unit != ''"> and unit = #{unit}</if>

+ 20
- 10
oa-back/sql/sq.sql
文件差異過大導致無法顯示
查看文件


+ 86
- 0
oa-ui/src/api/oa/price/checkPrice.js 查看文件

@@ -0,0 +1,86 @@
1
+import request from '@/utils/request'
2
+
3
+// 查询cmc核算单价列表
4
+export function listCheckPrice(query) {
5
+  return request({
6
+    url: '/oa/checkPrice/list',
7
+    method: 'get',
8
+    params: query
9
+  })
10
+}
11
+
12
+// 查询cmc核算单价详细
13
+export function getCheckPrice(id) {
14
+  return request({
15
+    url: '/oa/checkPrice/' + id,
16
+    method: 'get'
17
+  })
18
+}
19
+
20
+// 新增cmc核算单价
21
+export function addCheckPrice(data) {
22
+  return request({
23
+    url: '/oa/checkPrice',
24
+    method: 'post',
25
+    data: data
26
+  })
27
+}
28
+
29
+// 修改cmc核算单价
30
+export function updateCheckPrice(data) {
31
+  return request({
32
+    url: '/oa/checkPrice',
33
+    method: 'put',
34
+    data: data
35
+  })
36
+}
37
+
38
+// 删除cmc核算单价
39
+export function delCheckPrice(id) {
40
+  return request({
41
+    url: '/oa/checkPrice/' + id,
42
+    method: 'delete'
43
+  })
44
+}
45
+
46
+//  查询工作类别列表
47
+export function getWorkTypeList() {
48
+  return request({
49
+    url: '/oa/checkPrice/workTypeList',
50
+    method: 'get'
51
+  })
52
+}
53
+
54
+// 根据工作类别查询工作项目
55
+export function getWorkItemList(params) {
56
+  return request({
57
+    url: '/oa/checkPrice/workItem',
58
+    method: 'get',
59
+    params:params
60
+  })
61
+}
62
+
63
+// 根据工作项目查询项目细项
64
+export function getSubItemList(params) {
65
+  return request({
66
+    url: '/oa/checkPrice/subItem',
67
+    method: 'get',
68
+    params:params
69
+  })
70
+}
71
+// 根据工作项目查询比例等级
72
+export function getScaleGradeList(params) {
73
+  return request({
74
+    url: '/oa/checkPrice/scaleGrade',
75
+    method: 'get',
76
+    params:params
77
+  })
78
+}
79
+// 根据比例等级查询出单位、一般地类、复杂地类
80
+export function getUnitPrice(params) {
81
+  return request({
82
+    url: '/oa/checkPrice/price',
83
+    method: 'get',
84
+    params:params
85
+  })
86
+}

+ 296
- 0
oa-ui/src/views/oa/price/checkPrice.vue 查看文件

@@ -0,0 +1,296 @@
1
+<template>
2
+  <div class="app-container">
3
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
+      <el-form-item label="工作内容" prop="workItem">
5
+        <el-input
6
+          v-model="queryParams.workItem"
7
+          placeholder="请输入工作内容"
8
+          clearable
9
+          @keyup.enter.native="handleQuery"
10
+        />
11
+      </el-form-item>
12
+      <el-form-item label="内容细项" prop="subItem">
13
+        <el-input
14
+          v-model="queryParams.subItem"
15
+          placeholder="请输入内容细项"
16
+          clearable
17
+          @keyup.enter.native="handleQuery"
18
+        />
19
+      </el-form-item>
20
+      <el-form-item>
21
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
22
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
23
+      </el-form-item>
24
+    </el-form>
25
+
26
+    <el-row :gutter="10" class="mb8">
27
+      <el-col :span="1.5">
28
+        <el-button
29
+          type="primary"
30
+          plain
31
+          icon="el-icon-plus"
32
+          size="mini"
33
+          @click="handleAdd"
34
+          v-hasPermi="['oa:price:add']"
35
+        >新增</el-button>
36
+      </el-col>
37
+      <el-col :span="1.5">
38
+        <el-button
39
+          type="success"
40
+          plain
41
+          icon="el-icon-edit"
42
+          size="mini"
43
+          :disabled="single"
44
+          @click="handleUpdate"
45
+          v-hasPermi="['oa:price:edit']"
46
+        >修改</el-button>
47
+      </el-col>
48
+      <el-col :span="1.5">
49
+        <el-button
50
+          type="danger"
51
+          plain
52
+          icon="el-icon-delete"
53
+          size="mini"
54
+          :disabled="multiple"
55
+          @click="handleDelete"
56
+          v-hasPermi="['oa:price:remove']"
57
+        >删除</el-button>
58
+      </el-col>
59
+      <el-col :span="1.5">
60
+        <el-button
61
+          type="warning"
62
+          plain
63
+          icon="el-icon-download"
64
+          size="mini"
65
+          @click="handleExport"
66
+          v-hasPermi="['oa:price:export']"
67
+        >导出</el-button>
68
+      </el-col>
69
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
70
+    </el-row>
71
+
72
+    <el-table v-loading="loading" :data="checkPriceList" @selection-change="handleSelectionChange">
73
+      <el-table-column type="selection" width="55" align="center" />
74
+      <el-table-column label="工作类别" align="center" prop="workType" />
75
+      <el-table-column label="工作内容" align="center" prop="workItem" />
76
+      <el-table-column label="内容细项" align="center" prop="subItem" />
77
+      <el-table-column label="单价比例" align="center" prop="pricePercentage" />
78
+      <el-table-column label="等级或比例尺" align="center" prop="scaleGrade" />
79
+      <el-table-column label="单位" align="center" prop="unit" />
80
+      <el-table-column label="一般地类单价" align="center" prop="commonPrice" />
81
+      <el-table-column label="复杂地类单价" align="center" prop="complexPrice" />
82
+      <el-table-column label="备注" align="center" prop="remark" />
83
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
84
+        <template slot-scope="scope">
85
+          <el-button
86
+            size="mini"
87
+            type="text"
88
+            icon="el-icon-edit"
89
+            @click="handleUpdate(scope.row)"
90
+            v-hasPermi="['oa:price:edit']"
91
+          >修改</el-button>
92
+          <el-button
93
+            size="mini"
94
+            type="text"
95
+            icon="el-icon-delete"
96
+            @click="handleDelete(scope.row)"
97
+            v-hasPermi="['oa:price:remove']"
98
+          >删除</el-button>
99
+        </template>
100
+      </el-table-column>
101
+    </el-table>
102
+    
103
+    <pagination
104
+      v-show="total>0"
105
+      :total="total"
106
+      :page.sync="queryParams.pageNum"
107
+      :limit.sync="queryParams.pageSize"
108
+      @pagination="getList"
109
+    />
110
+
111
+    <!-- 添加或修改cmc核算单价对话框 -->
112
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
113
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
114
+        <el-form-item label="工作内容" prop="workItem">
115
+          <el-input v-model="form.workItem" placeholder="请输入工作内容" />
116
+        </el-form-item>
117
+        <el-form-item label="内容细项" prop="subItem">
118
+          <el-input v-model="form.subItem" placeholder="请输入内容细项" />
119
+        </el-form-item>
120
+        <el-form-item label="单价比例" prop="pricePercentage">
121
+          <el-input v-model="form.pricePercentage" placeholder="请输入单价比例" />
122
+        </el-form-item>
123
+        <el-form-item label="等级或比例尺" prop="scaleGrade">
124
+          <el-input v-model="form.scaleGrade" placeholder="请输入等级或比例尺" />
125
+        </el-form-item>
126
+        <el-form-item label="单位" prop="unit">
127
+          <el-input v-model="form.unit" placeholder="请输入单位" />
128
+        </el-form-item>
129
+        <el-form-item label="一般地类单价" prop="commonPrice">
130
+          <el-input v-model="form.commonPrice" placeholder="请输入一般地类单价" />
131
+        </el-form-item>
132
+        <el-form-item label="复杂地类单价" prop="complexPrice">
133
+          <el-input v-model="form.complexPrice" placeholder="请输入复杂地类单价" />
134
+        </el-form-item>
135
+        <el-form-item label="备注" prop="remark">
136
+          <el-input v-model="form.remark" placeholder="请输入备注" />
137
+        </el-form-item>
138
+      </el-form>
139
+      <div slot="footer" class="dialog-footer">
140
+        <el-button type="primary" @click="submitForm">确 定</el-button>
141
+        <el-button @click="cancel">取 消</el-button>
142
+      </div>
143
+    </el-dialog>
144
+  </div>
145
+</template>
146
+
147
+<script>
148
+import { listCheckPrice, getCheckPrice, delCheckPrice, addCheckPrice, updateCheckPrice } from "@/api/oa/price/checkPrice";
149
+
150
+export default {
151
+  name: "CheckPrice",
152
+  data() {
153
+    return {
154
+      // 遮罩层
155
+      loading: true,
156
+      // 选中数组
157
+      ids: [],
158
+      // 非单个禁用
159
+      single: true,
160
+      // 非多个禁用
161
+      multiple: true,
162
+      // 显示搜索条件
163
+      showSearch: true,
164
+      // 总条数
165
+      total: 0,
166
+      // cmc核算单价表格数据
167
+      checkPriceList: [],
168
+      // 弹出层标题
169
+      title: "",
170
+      // 是否显示弹出层
171
+      open: false,
172
+      // 查询参数
173
+      queryParams: {
174
+        pageNum: 1,
175
+        pageSize: 10,
176
+        workType: null,
177
+        workItem: null,
178
+        subItem: null,
179
+        pricePercentage: null,
180
+        scaleGrade: null,
181
+        unit: null,
182
+        commonPrice: null,
183
+        complexPrice: null,
184
+      },
185
+      // 表单参数
186
+      form: {},
187
+      // 表单校验
188
+      rules: {
189
+      }
190
+    };
191
+  },
192
+  created() {
193
+    this.getList();
194
+  },
195
+  methods: {
196
+    /** 查询cmc核算单价列表 */
197
+    getList() {
198
+      this.loading = true;
199
+      listCheckPrice(this.queryParams).then(response => {
200
+        this.checkPriceList = response.rows;
201
+        this.total = response.total;
202
+        this.loading = false;
203
+      });
204
+    },
205
+    // 取消按钮
206
+    cancel() {
207
+      this.open = false;
208
+      this.reset();
209
+    },
210
+    // 表单重置
211
+    reset() {
212
+      this.form = {
213
+        id: null,
214
+        workType: null,
215
+        workItem: null,
216
+        subItem: null,
217
+        pricePercentage: null,
218
+        scaleGrade: null,
219
+        unit: null,
220
+        commonPrice: null,
221
+        complexPrice: null,
222
+        remark: null
223
+      };
224
+      this.resetForm("form");
225
+    },
226
+    /** 搜索按钮操作 */
227
+    handleQuery() {
228
+      this.queryParams.pageNum = 1;
229
+      this.getList();
230
+    },
231
+    /** 重置按钮操作 */
232
+    resetQuery() {
233
+      this.resetForm("queryForm");
234
+      this.handleQuery();
235
+    },
236
+    // 多选框选中数据
237
+    handleSelectionChange(selection) {
238
+      this.ids = selection.map(item => item.id)
239
+      this.single = selection.length!==1
240
+      this.multiple = !selection.length
241
+    },
242
+    /** 新增按钮操作 */
243
+    handleAdd() {
244
+      this.reset();
245
+      this.open = true;
246
+      this.title = "添加cmc核算单价";
247
+    },
248
+    /** 修改按钮操作 */
249
+    handleUpdate(row) {
250
+      this.reset();
251
+      const id = row.id || this.ids
252
+      getCheckPrice(id).then(response => {
253
+        this.form = response.data;
254
+        this.open = true;
255
+        this.title = "修改cmc核算单价";
256
+      });
257
+    },
258
+    /** 提交按钮 */
259
+    submitForm() {
260
+      this.$refs["form"].validate(valid => {
261
+        if (valid) {
262
+          if (this.form.id != null) {
263
+            updateCheckPrice(this.form).then(response => {
264
+              this.$modal.msgSuccess("修改成功");
265
+              this.open = false;
266
+              this.getList();
267
+            });
268
+          } else {
269
+            addCheckPrice(this.form).then(response => {
270
+              this.$modal.msgSuccess("新增成功");
271
+              this.open = false;
272
+              this.getList();
273
+            });
274
+          }
275
+        }
276
+      });
277
+    },
278
+    /** 删除按钮操作 */
279
+    handleDelete(row) {
280
+      const ids = row.id || this.ids;
281
+      this.$modal.confirm('是否确认删除cmc核算单价编号为"' + ids + '"的数据项?').then(function() {
282
+        return delCheckPrice(ids);
283
+      }).then(() => {
284
+        this.getList();
285
+        this.$modal.msgSuccess("删除成功");
286
+      }).catch(() => {});
287
+    },
288
+    /** 导出按钮操作 */
289
+    handleExport() {
290
+      this.download('oa/checkPrice/export', {
291
+        ...this.queryParams
292
+      }, `checkPrice_${new Date().getTime()}.xlsx`)
293
+    }
294
+  }
295
+};
296
+</script>

Loading…
取消
儲存