web/src/views/modules/sys/codeRule/SysCodeRule-AddOrUpdate.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/views/modules/sys/codeRule/SysCodeRule.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zt/core/src/main/java/com/zt/modules/coderule/controller/SysCodeRuleController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zt/core/src/main/java/com/zt/modules/coderule/dao/SysCodeRuleDao.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zt/core/src/main/java/com/zt/modules/coderule/model/SysCodeRule.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zt/core/src/main/java/com/zt/modules/coderule/service/SysCodeRuleService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zt/core/src/main/resources/mapper/coderule/SysCodeRuleDao.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
web/src/views/modules/sys/codeRule/SysCodeRule-AddOrUpdate.vue
New file @@ -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> web/src/views/modules/sys/codeRule/SysCodeRule.vue
New file @@ -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> zt/core/src/main/java/com/zt/modules/coderule/controller/SysCodeRuleController.java
New file @@ -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(); } } zt/core/src/main/java/com/zt/modules/coderule/dao/SysCodeRuleDao.java
New file @@ -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); } zt/core/src/main/java/com/zt/modules/coderule/model/SysCodeRule.java
New file @@ -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; } zt/core/src/main/java/com/zt/modules/coderule/service/SysCodeRuleService.java
New file @@ -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; } } zt/core/src/main/resources/mapper/coderule/SysCodeRuleDao.xml
New file @@ -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>