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