From 56e6e761486c3486091317b379aaa4bfd884607f Mon Sep 17 00:00:00 2001
From: zzw <wander.zheng@qq.com>
Date: 星期四, 09 十一月 2023 15:26:42 +0800
Subject: [PATCH] 编号
---
zt/core/src/main/java/com/zt/modules/coderule/dao/SysCodeRuleDao.java | 28 ++++
zt/core/src/main/java/com/zt/modules/coderule/service/SysCodeRuleService.java | 69 +++++++++
zt/core/src/main/java/com/zt/modules/coderule/controller/SysCodeRuleController.java | 104 ++++++++++++++
web/src/views/modules/sys/codeRule/SysCodeRule-AddOrUpdate.vue | 61 ++++++++
zt/core/src/main/resources/mapper/coderule/SysCodeRuleDao.xml | 30 ++++
web/src/views/modules/sys/codeRule/SysCodeRule.vue | 42 ++++++
zt/core/src/main/java/com/zt/modules/coderule/model/SysCodeRule.java | 42 ++++++
7 files changed, 376 insertions(+), 0 deletions(-)
diff --git a/web/src/views/modules/sys/codeRule/SysCodeRule-AddOrUpdate.vue b/web/src/views/modules/sys/codeRule/SysCodeRule-AddOrUpdate.vue
new file mode 100644
index 0000000..5b62675
--- /dev/null
+++ b/web/src/views/modules/sys/codeRule/SysCodeRule-AddOrUpdate.vue
@@ -0,0 +1,61 @@
+<template>
+ <zt-dialog ref="dialog" @confirm="formSubmit">
+ <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
+ <zt-form-item label="鍔熻兘缂栫爜" prop="funCode" rules="required">
+ <el-input v-model="dataForm.funCode"></el-input>
+ </zt-form-item>
+ <zt-form-item label="鍔熻兘鍚嶇О" prop="name" rules="required">
+ <el-input v-model="dataForm.name"></el-input>
+ </zt-form-item>
+ <zt-form-item label="缂栧彿瑙勫垯" prop="codeRule" rules="required">
+ <el-input v-model="dataForm.codeRule"></el-input>
+ </zt-form-item>
+ <zt-form-item label="鏁版嵁琛ㄥ悕绉�" prop="tableName" rules="required">
+ <el-input v-model="dataForm.tableName"></el-input>
+ </zt-form-item>
+ <zt-form-item label="搴忓彿浣嶆暟" prop="noByteNum" rules="required">
+ <el-input v-model="dataForm.noByteNum"></el-input>
+ </zt-form-item>
+ <zt-form-item label="澶囨敞" prop="remark" rules="required">
+ <el-input v-model="dataForm.remark"></el-input>
+ </zt-form-item>
+ </el-form>
+ </zt-dialog>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+ dataForm: {
+ id: '',
+ funCode: '',
+ name: '',
+ codeRule: '',
+ tableName: '',
+ noByteNum: '',
+ remark: ''
+ }
+ }
+ },
+ methods: {
+ // 鑾峰彇淇℃伅
+ async getInfo() {
+ let res = await this.$http.get(`/coderule/SysCodeRule/${this.dataForm.id}`)
+ this.dataForm = {
+ ...this.dataForm,
+ ...res.data
+ }
+ },
+ // 琛ㄥ崟鎻愪氦
+ async formSubmit() {
+ let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/coderule/SysCodeRule/', this.dataForm)
+ if (res.success) {
+ await this.$tip.success()
+ this.$refs.dialog.close()
+ this.$emit('refreshDataList')
+ }
+ }
+ }
+ }
+</script>
diff --git a/web/src/views/modules/sys/codeRule/SysCodeRule.vue b/web/src/views/modules/sys/codeRule/SysCodeRule.vue
new file mode 100644
index 0000000..1a7c793
--- /dev/null
+++ b/web/src/views/modules/sys/codeRule/SysCodeRule.vue
@@ -0,0 +1,42 @@
+<template>
+ <el-card shadow="never" class="aui-card--fill">
+ <div class="mod-coderule-sysCodeRule}">
+ <zt-table-wraper query-url="/coderule/SysCodeRule/page" delete-url="/coderule/SysCodeRule" v-slot="{ table }">
+ <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+ <el-form-item>
+ <zt-button type="query" @click="table.query()"/>
+ <zt-button type="add" perm="coderule:add" @click="table.editHandle()"/>
+ <zt-button type="delete" perm="coderule:delete" @click="table.deleteHandle()"/>
+ </el-form-item>
+ </el-form>
+ <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle">
+ <el-table-column type="selection" width="40"/>
+ <el-table-column prop="funCode" label="鍔熻兘缂栫爜"/>
+ <el-table-column prop="name" label="鍔熻兘鍚嶇О"/>
+ <el-table-column prop="codeRule" label="缂栧彿瑙勫垯"/>
+ <el-table-column prop="tableName" label="鏁版嵁琛ㄥ悕绉�"/>
+ <el-table-column prop="noByteNum" label="搴忓彿浣嶆暟"/>
+ <el-table-column prop="remark" label="澶囨敞"/>
+ <zt-table-column-handle :table="table" edit-perm="coderule:update" delete-perm="coderule::delete"/>
+ </el-table>
+ <!-- 寮圭獥, 鏂板 / 淇敼 -->
+ <add-or-update @refreshDataList="table.query"/>
+ </zt-table-wraper>
+ </div>
+ </el-card>
+</template>
+
+<script>
+ import AddOrUpdate from './SysCodeRule-AddOrUpdate'
+ export default {
+ data() {
+ return {
+ dataForm: {
+ }
+ }
+ },
+ components: {
+ AddOrUpdate
+ }
+ }
+</script>
diff --git a/zt/core/src/main/java/com/zt/modules/coderule/controller/SysCodeRuleController.java b/zt/core/src/main/java/com/zt/modules/coderule/controller/SysCodeRuleController.java
new file mode 100644
index 0000000..c2776fb
--- /dev/null
+++ b/zt/core/src/main/java/com/zt/modules/coderule/controller/SysCodeRuleController.java
@@ -0,0 +1,104 @@
+package com.zt.modules.coderule.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.modules.coderule.model.SysCodeRule;
+import com.zt.modules.coderule.service.SysCodeRuleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * sys_code_rule
+ *
+ * @author zt generator
+ * @since 1.0.0 2023-11-09
+ */
+@RestController
+@RequestMapping("/coderule/SysCodeRule/")
+@Api(tags="sys_code_rule")
+public class SysCodeRuleController {
+ @Autowired
+ private SysCodeRuleService sysCodeRuleService;
+
+ @GetMapping("page")
+ @ApiOperation("鍒嗛〉")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
+ @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
+ @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+ @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+ })
+ public PageResult<SysCodeRule> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+ return PageResult.ok(sysCodeRuleService.page(queryFilter));
+ }
+
+ @GetMapping("getNewCode")
+ @ApiOperation("淇℃伅")
+ public Result<String> getNewCode(Map<String,String> map){
+ String data = sysCodeRuleService.getNewCode(map);
+ return Result.ok(data);
+ }
+
+ @GetMapping("{id}")
+ @ApiOperation("淇℃伅")
+ public Result<SysCodeRule> get(@PathVariable("id") Long id){
+ SysCodeRule data = sysCodeRuleService.get(id);
+
+ return Result.ok(data);
+ }
+
+ @PostMapping
+ @ApiOperation("鏂板")
+ @LogOperation("鏂板")
+ public Result insert(@RequestBody SysCodeRule sysCodeRule){
+ //鏁堥獙鏁版嵁
+ ValidatorUtils.validateEntity(sysCodeRule, AddGroup.class, DefaultGroup.class);
+ sysCodeRuleService.insert(sysCodeRule);
+
+ return Result.ok();
+ }
+
+ @PutMapping
+ @ApiOperation("淇敼")
+ @LogOperation("淇敼")
+ public Result update(@RequestBody SysCodeRule sysCodeRule){
+ //鏁堥獙鏁版嵁
+ ValidatorUtils.validateEntity(sysCodeRule, UpdateGroup.class, DefaultGroup.class);
+ sysCodeRuleService.update(sysCodeRule);
+
+ return Result.ok();
+ }
+
+ @DeleteMapping
+ @ApiOperation("鍒犻櫎")
+ @LogOperation("鍒犻櫎")
+ public Result delete(@RequestBody Long[] ids){
+ //鏁堥獙鏁版嵁
+ AssertUtils.isArrayEmpty(ids, "id");
+ sysCodeRuleService.delete(ids);
+
+ return Result.ok();
+ }
+
+}
diff --git a/zt/core/src/main/java/com/zt/modules/coderule/dao/SysCodeRuleDao.java b/zt/core/src/main/java/com/zt/modules/coderule/dao/SysCodeRuleDao.java
new file mode 100644
index 0000000..327b316
--- /dev/null
+++ b/zt/core/src/main/java/com/zt/modules/coderule/dao/SysCodeRuleDao.java
@@ -0,0 +1,28 @@
+package com.zt.modules.coderule.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.modules.coderule.model.SysCodeRule;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * sys_code_rule
+ *
+ * @author zt generator
+ * @since 1.0.0 2023-11-09
+ */
+@Mapper
+public interface SysCodeRuleDao extends BaseDao<SysCodeRule> {
+
+ List<SysCodeRule> getList(Map<String, Object> params);
+
+ SysCodeRule getCodeRule(Map<String, String> map);
+
+ String getProjectIdentity(String projectId);
+
+ String getMaxCode(String tableName, String newCodeTemplet);
+}
diff --git a/zt/core/src/main/java/com/zt/modules/coderule/model/SysCodeRule.java b/zt/core/src/main/java/com/zt/modules/coderule/model/SysCodeRule.java
new file mode 100644
index 0000000..0272406
--- /dev/null
+++ b/zt/core/src/main/java/com/zt/modules/coderule/model/SysCodeRule.java
@@ -0,0 +1,42 @@
+package com.zt.modules.coderule.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * sys_code_rule
+ *
+ * @author zt generator
+ * @since 1.0.0 2023-11-09
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("sys_code_rule")
+public class SysCodeRule extends BusiEntity {
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "")
+ private String funCode;
+
+ @ApiModelProperty(value = "")
+ private String name;
+
+ @ApiModelProperty(value = "")
+ private String codeRule;
+
+ @ApiModelProperty(value = "")
+ private String tableName;
+
+ @ApiModelProperty(value = "")
+ private Integer noByteNum;
+
+ @ApiModelProperty(value = "")
+ private String remark;
+
+}
diff --git a/zt/core/src/main/java/com/zt/modules/coderule/service/SysCodeRuleService.java b/zt/core/src/main/java/com/zt/modules/coderule/service/SysCodeRuleService.java
new file mode 100644
index 0000000..c8668e9
--- /dev/null
+++ b/zt/core/src/main/java/com/zt/modules/coderule/service/SysCodeRuleService.java
@@ -0,0 +1,69 @@
+package com.zt.modules.coderule.service;
+
+import cn.hutool.core.convert.Convert;
+import com.zt.common.service.BaseService;
+import com.zt.modules.coderule.dao.SysCodeRuleDao;
+import com.zt.modules.coderule.model.SysCodeRule;
+import com.zt.modules.workflowconfig.dao.WfDefDao;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * sys_code_rule
+ *
+ * @author zt generator
+ * @since 1.0.0 2023-11-09
+ */
+@Service
+public class SysCodeRuleService extends BaseService<SysCodeRuleDao, SysCodeRule> {
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param queryFilter
+ * @return
+ */
+ public List<SysCodeRule> page(QueryFilter queryFilter) {
+ return baseDao.getList(queryFilter.getQueryParams());
+ }
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param ids
+ */
+ public void delete(Long[] ids) {
+ super.deleteLogic(ids);
+ }
+
+ public String getNewCode(Map<String, String> map) {
+ SysCodeRule codeRule = baseDao.getCodeRule(map);
+ String newCodeTemplet = codeRule.getFunCode();
+ if (map.get("projectId")!=null){
+ String projectIdentity = baseDao.getProjectIdentity(map.get("projectId"));
+ newCodeTemplet = newCodeTemplet.replace("[椤圭洰缂栧彿]",projectIdentity);
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+ String year = sdf.format(new Date());
+ newCodeTemplet = newCodeTemplet.replace("[骞翠唤]",year);
+
+ String xhTemplet = StringUtils.substring("__________",0,codeRule.getNoByteNum()-1);
+ newCodeTemplet = newCodeTemplet.replace("[搴忓彿]",xhTemplet);
+ int xhStartPosition = newCodeTemplet.indexOf(xhTemplet);
+
+ String maxCode = baseDao.getMaxCode(codeRule.getTableName(),newCodeTemplet);
+ String maxCodeXh = "0";
+ if (StringUtils.isNotBlank(maxCode))
+ maxCodeXh = StringUtils.substring(maxCode,xhStartPosition,xhStartPosition+codeRule.getNoByteNum()-1);
+ String newCodeXh = String.format("%0"+codeRule.getNoByteNum()+"d", Convert.toInt(maxCodeXh)+1);
+ String newCode = newCodeTemplet.replace(xhTemplet,newCodeXh);
+ return newCode;
+ }
+}
diff --git a/zt/core/src/main/resources/mapper/coderule/SysCodeRuleDao.xml b/zt/core/src/main/resources/mapper/coderule/SysCodeRuleDao.xml
new file mode 100644
index 0000000..ee2f579
--- /dev/null
+++ b/zt/core/src/main/resources/mapper/coderule/SysCodeRuleDao.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.modules.coderule.dao.SysCodeRuleDao">
+
+ <select id="getList" resultType="com.zt.modules.coderule.model.SysCodeRule">
+ select a.*
+ from sys_code_rule a
+ <where>
+ a.is_delete = 0
+ <if test="whereSql!=null">
+ and ${whereSql}
+ </if>
+ </where>
+ <if test="orderBySql!=null">
+ ORDER BY ${orderBySql}
+ </if>
+ </select>
+ <select id="getCodeRule" resultType="com.zt.modules.coderule.model.SysCodeRule">
+ select * from sys_code_rule where fun_code = #{funCode}
+ </select>
+ <select id="getProjectIdentity" resultType="java.lang.String">
+ select IDENTITY from project where id = ${projectId}
+ </select>
+ <select id="getMaxCode" resultType="java.lang.String">
+ select max(code) from ${tableName} where code like '${newCodeTemplet}'
+ </select>
+
+
+</mapper>
--
Gitblit v1.9.1