From 103f52ade0f77e420dec306ea3b51d0a3c0ac3ee Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 19 三月 2025 13:23:12 +0800 Subject: [PATCH] art: 设备管理-系统业务编码生成,工艺参数维护功能修改 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysBusinessCodeSeqMapper.java | 14 ++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysBusinessCodeRuleController.java | 3 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java | 9 + lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeRuleService.java | 7 + lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java | 8 - lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeSeq.java | 71 +++++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java | 11 - lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java | 111 ++++++++++++++++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysBusinessCodeSeqMapper.xml | 5 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeSeqService.java | 23 +++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeSeqServiceImpl.java | 58 +++++++++ 11 files changed, 306 insertions(+), 14 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java index d5aefc7..42b8a38 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java @@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.util.oConvertUtils; @@ -20,6 +21,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -48,6 +50,9 @@ public class EamProcessParametersController extends JeecgController<EamProcessParameters, IEamProcessParametersService> { @Autowired private IEamProcessParametersService eamProcessParametersService; + + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -66,6 +71,7 @@ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<EamProcessParameters> queryWrapper = QueryGenerator.initQueryWrapper(eamProcessParameters, req.getParameterMap()); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); Page<EamProcessParameters> page = new Page<EamProcessParameters>(pageNo, pageSize); IPage<EamProcessParameters> pageList = eamProcessParametersService.page(page, queryWrapper); return Result.OK(pageList); @@ -81,6 +87,9 @@ @ApiOperation(value="宸ュ簭鍙傛暟缁存姢-娣诲姞", notes="宸ュ簭鍙傛暟缁存姢-娣诲姞") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamProcessParameters eamProcessParameters) { + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq("ProcessParametersRule"); + eamProcessParameters.setParameterCode(codeSeq); + eamProcessParameters.setDelFlag(CommonConstant.DEL_FLAG_0); eamProcessParametersService.save(eamProcessParameters); return Result.OK("娣诲姞鎴愬姛锛�"); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java index c817b17..f313c9f 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java @@ -8,6 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; import org.jeecgframework.poi.excel.annotation.Excel; import java.io.Serializable; @@ -30,34 +31,32 @@ @ApiModelProperty(value = "涓婚敭") private String id; /**鍒涘缓浜�*/ - @Excel(name = "鍒涘缓浜�", width = 15) @ApiModelProperty(value = "鍒涘缓浜�") private String createBy; /**鍒涘缓鏃堕棿*/ @ApiModelProperty(value = "鍒涘缓鏃堕棿") private Date createTime; /**鏇存柊浜�*/ - @Excel(name = "鏇存柊浜�", width = 15) @ApiModelProperty(value = "鏇存柊浜�") private String updateBy; /**鏇存柊鏃堕棿*/ @ApiModelProperty(value = "鏇存柊鏃堕棿") private Date updateTime; /**鍒犻櫎鏍囪*/ - @Excel(name = "鍒犻櫎鏍囪", width = 15) @ApiModelProperty(value = "鍒犻櫎鏍囪") private Integer delFlag; /**鍙傛暟缂栫爜*/ - @Excel(name = "鍙傛暟缂栫爜", width = 15) + @Excel(name = "鍙傛暟缂栫爜", width = 25) @ApiModelProperty(value = "鍙傛暟缂栫爜") private String parameterCode; /**鍙傛暟鍚嶇О*/ - @Excel(name = "鍙傛暟鍚嶇О", width = 15) + @Excel(name = "鍙傛暟鍚嶇О", width = 25) @ApiModelProperty(value = "鍙傛暟鍚嶇О") private String parameterName; /**鍙傛暟鍒嗙被*/ - @Excel(name = "鍙傛暟鍒嗙被", width = 15) + @Excel(name = "鍙傛暟鍒嗙被", width = 15, dicCode = "process_parameters_category") @ApiModelProperty(value = "鍙傛暟鍒嗙被") + @Dict(dicCode = "process_parameters_category") private String parameterCategory; /**璁¢噺鍗曚綅*/ @Excel(name = "璁¢噺鍗曚綅", width = 15) diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysBusinessCodeRuleController.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysBusinessCodeRuleController.java index c662045..32a4845 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysBusinessCodeRuleController.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysBusinessCodeRuleController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.system.entity.SysBusinessCodeRule; @@ -48,6 +49,7 @@ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<SysBusinessCodeRule> queryWrapper = QueryGenerator.initQueryWrapper(sysBusinessCodeRule, req.getParameterMap()); + queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0); Page<SysBusinessCodeRule> page = new Page<SysBusinessCodeRule>(pageNo, pageSize); IPage<SysBusinessCodeRule> pageList = sysBusinessCodeRuleService.page(page, queryWrapper); return Result.OK(pageList); @@ -63,6 +65,7 @@ @ApiOperation(value="涓氬姟缂栫爜瑙勫垯-娣诲姞", notes="涓氬姟缂栫爜瑙勫垯-娣诲姞") @PostMapping(value = "/add") public Result<?> add(@RequestBody SysBusinessCodeRule sysBusinessCodeRule) { + sysBusinessCodeRule.setDelFlag(CommonConstant.DEL_FLAG_0); sysBusinessCodeRuleService.save(sysBusinessCodeRule); return Result.OK("娣诲姞鎴愬姛锛�"); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java index d87f243..4e1806d 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java @@ -69,15 +69,11 @@ @ApiModelProperty(value = "鏈堜唤缂栫爜鏍煎紡") private String monthFormat; /**澶� 缂栫爜鏍煎紡*/ - @Excel(name = "澶� 缂栫爜鏍煎紡", width = 15) - @ApiModelProperty(value = "澶� 缂栫爜鏍煎紡") + @Excel(name = "澶╃紪鐮佹牸寮�", width = 15) + @ApiModelProperty(value = "澶╃紪鐮佹牸寮�") private String dayFormat; /**搴忓彿闀垮害*/ @Excel(name = "搴忓彿闀垮害", width = 15) @ApiModelProperty(value = "搴忓彿闀垮害") private Integer seqLength; - /**褰撳墠搴忓彿*/ - @Excel(name = "褰撳墠搴忓彿", width = 15) - @ApiModelProperty(value = "褰撳墠搴忓彿") - private Integer currentNum; } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeSeq.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeSeq.java new file mode 100644 index 0000000..0217956 --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeSeq.java @@ -0,0 +1,71 @@ +package org.jeecg.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 涓氬姟缂栫爜鐢熸垚搴忓垪 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Data +@TableName("sys_business_code_seq") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="sys_business_code_seq瀵硅薄", description="涓氬姟缂栫爜鐢熸垚搴忓垪") +public class SysBusinessCodeSeq implements Serializable { + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍒涘缓浜�*/ + @Excel(name = "鍒涘缓浜�", width = 15) + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @Excel(name = "鏇存柊浜�", width = 15) + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; + /**瑙勫垯缂栫爜*/ + @Excel(name = "瑙勫垯缂栫爜", width = 15) + @ApiModelProperty(value = "瑙勫垯缂栫爜") + private String ruleId; + /**鍓嶇紑*/ + @Excel(name = "鍓嶇紑", width = 15) + @ApiModelProperty(value = "鍓嶇紑") + private String prefix; + /**褰撳墠骞翠唤*/ + @Excel(name = "褰撳墠骞翠唤", width = 15) + @ApiModelProperty(value = "褰撳墠骞翠唤") + private String currentYear; + /**褰撳墠鏈堜唤*/ + @Excel(name = "褰撳墠鏈堜唤", width = 15) + @ApiModelProperty(value = "褰撳墠鏈堜唤") + private String currentMonth; + /**褰撳墠澶�*/ + @Excel(name = "褰撳墠澶�", width = 15) + @ApiModelProperty(value = "褰撳墠澶�") + private String currentDay; + /**褰撳墠搴忓垪鍊�*/ + @Excel(name = "褰撳墠搴忓垪鍊�", width = 15) + @ApiModelProperty(value = "褰撳墠搴忓垪鍊�") + private Integer currentSeq; +} diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysBusinessCodeSeqMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysBusinessCodeSeqMapper.java new file mode 100644 index 0000000..eed233e --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysBusinessCodeSeqMapper.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.system.entity.SysBusinessCodeSeq; + +/** + * @Description: 涓氬姟缂栫爜鐢熸垚搴忓垪 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface SysBusinessCodeSeqMapper extends BaseMapper<SysBusinessCodeSeq> { + +} diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysBusinessCodeSeqMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysBusinessCodeSeqMapper.xml new file mode 100644 index 0000000..e7feff9 --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysBusinessCodeSeqMapper.xml @@ -0,0 +1,5 @@ +<?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="org.jeecg.modules.system.mapper.SysBusinessCodeSeqMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeRuleService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeRuleService.java index f1179ee..7e2ab06 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeRuleService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeRuleService.java @@ -10,5 +10,10 @@ * @Version: V1.0 */ public interface ISysBusinessCodeRuleService extends IService<SysBusinessCodeRule> { - + /** + * 鐢熸垚涓氬姟缂栫爜瀵瑰簲鐨勬祦姘村彿 + * @param businessCode 涓氬姟缂栫爜 + * @return + */ + String generateBusinessCodeSeq(String businessCode); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeSeqService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeSeqService.java new file mode 100644 index 0000000..5c26ba4 --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeSeqService.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.system.service; + +import org.jeecg.modules.system.entity.SysBusinessCodeSeq; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 涓氬姟缂栫爜鐢熸垚搴忓垪 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +public interface ISysBusinessCodeSeqService extends IService<SysBusinessCodeSeq> { + /** + * 鑾峰彇褰撳墠搴忓垪鐢熸垚璁板綍 + * @param ruleId 瑙勫垯Id + * @param prefix 鍓嶇紑 + * @param yearValue 骞翠唤 + * @param monthValue 鏈堜唤 + * @param dayValue 澶� + * @return + */ + SysBusinessCodeSeq queryByParams(String ruleId, String prefix, String yearValue, String monthValue, String dayValue); +} diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java index 3a3505e..ea9e380 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java @@ -1,19 +1,128 @@ package org.jeecg.modules.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.exception.JeecgBootException; import org.jeecg.modules.system.entity.SysBusinessCodeRule; +import org.jeecg.modules.system.entity.SysBusinessCodeSeq; import org.jeecg.modules.system.mapper.SysBusinessCodeRuleMapper; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.jeecg.modules.system.service.ISysBusinessCodeSeqService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; /** * @Description: 涓氬姟缂栫爜瑙勫垯 * @Author: jeecg-boot - * @Date: 2025-03-17 + * @Date: 2025-03-17 * @Version: V1.0 */ @Service public class SysBusinessCodeRuleServiceImpl extends ServiceImpl<SysBusinessCodeRuleMapper, SysBusinessCodeRule> implements ISysBusinessCodeRuleService { + @Resource + private SysBusinessCodeRuleMapper businessCodeRuleMapper; + + @Autowired + private ISysBusinessCodeSeqService businessCodeSeqService; + + @Override + @Transactional(rollbackFor = Exception.class) + public String generateBusinessCodeSeq(String businessCode) { + //鏌ヨ鐢熸垚瑙勫垯 + LambdaQueryWrapper<SysBusinessCodeRule> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysBusinessCodeRule::getBusinessCode, businessCode); + queryWrapper.eq(SysBusinessCodeRule::getDelFlag, CommonConstant.DEL_FLAG_0); + List<SysBusinessCodeRule> list = businessCodeRuleMapper.selectList(queryWrapper); + if (CollectionUtil.isEmpty(list)) { + throw new JeecgBootException("鏈煡璇㈠埌閰嶇疆鐨勪笟鍔$紪鐮佺敓鎴愯鍒欙紝璇疯仈绯荤鐞嗗憳妫�鏌ワ紒"); + } + if (list.size() > 1) { + throw new JeecgBootException("鏌ヨ鍒板涓厤缃殑涓氬姟缂栫爜鐢熸垚瑙勫垯锛岃鑱旂郴绠$悊鍛樻鏌ワ紒"); + } + SysBusinessCodeRule businessCodeRule = list.get(0); + String prefix = businessCodeRule.getPrefix(); + String yearFormat = businessCodeRule.getYearFormat() == null ? "" : businessCodeRule.getYearFormat().trim(); + String monthFormat = businessCodeRule.getMonthFormat() == null ? "" : businessCodeRule.getMonthFormat().trim(); + String dayFormat = businessCodeRule.getDayFormat() == null ? "" : businessCodeRule.getDayFormat().trim(); + Integer seqLength = businessCodeRule.getSeqLength(); + String formatter = yearFormat + "-" + monthFormat + "-" + dayFormat; + //杞崲褰撳墠鏃ユ湡瀵瑰簲鐨勭敓鎴愬簭鍒� + String[] currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern(formatter)).split("-"); + int i = 0; + if (StringUtils.isNotBlank(yearFormat)) { + yearFormat = currentDate[i]; + i++; + }else { + yearFormat = null; + } + if (StringUtils.isNotBlank(monthFormat)) { + monthFormat = currentDate[i]; + i++; + }else { + monthFormat = null; + } + if (StringUtils.isNotBlank(dayFormat)) { + dayFormat = currentDate[i]; + }else { + dayFormat = null; + } + //鏌ヨ鐢熸垚搴忓垪 + SysBusinessCodeSeq sysBusinessCodeSeq = businessCodeSeqService.queryByParams(businessCodeRule.getId(), prefix, yearFormat, monthFormat, dayFormat); + if(sysBusinessCodeSeq == null){ + //鏂板鐢熸垚搴忓垪 + sysBusinessCodeSeq = new SysBusinessCodeSeq(); + sysBusinessCodeSeq.setRuleId(businessCodeRule.getId()); + sysBusinessCodeSeq.setPrefix(prefix); + sysBusinessCodeSeq.setCurrentYear(yearFormat); + sysBusinessCodeSeq.setCurrentMonth(monthFormat); + sysBusinessCodeSeq.setCurrentDay(dayFormat); + sysBusinessCodeSeq.setCurrentSeq(1); + businessCodeSeqService.save(sysBusinessCodeSeq); + }else { + //鏇存柊鐢熸垚搴忓垪 + sysBusinessCodeSeq.setCurrentSeq(sysBusinessCodeSeq.getCurrentSeq() + 1); + businessCodeSeqService.updateById(sysBusinessCodeSeq); + } + //杩斿洖鐢熸垚鐨勫簭鍒� + return appendPrefix(prefix, yearFormat, monthFormat, dayFormat, seqLength, sysBusinessCodeSeq.getCurrentSeq()); + } + + /** + * 鎷兼帴涓氬姟娴佹按鍙� + * @param prefix 鍓嶇紑 + * @param yearFormat 骞翠唤 + * @param monthFormat 鏈堜唤 + * @param dayFormat 澶� + * @param seqLength 搴忓彿闀垮害 + * @param currentSeq 褰撳墠搴忓彿 + * @return + */ + private String appendPrefix(String prefix, String yearFormat, String monthFormat, String dayFormat, Integer seqLength, Integer currentSeq) { + StringBuilder sb = new StringBuilder(); + if(StringUtils.isNotBlank(prefix)){ + sb.append(prefix); + } + if(StringUtils.isNotBlank(yearFormat)){ + sb.append(yearFormat); + } + if(StringUtils.isNotBlank(monthFormat)){ + sb.append(monthFormat); + } + if(StringUtils.isNotBlank(dayFormat)){ + sb.append(dayFormat); + } + sb.append(StringUtils.leftPad(currentSeq.toString(), seqLength, '0')); + return sb.toString(); + } } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeSeqServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeSeqServiceImpl.java new file mode 100644 index 0000000..26c1e8b --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeSeqServiceImpl.java @@ -0,0 +1,58 @@ +package org.jeecg.modules.system.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.modules.system.entity.SysBusinessCodeSeq; +import org.jeecg.modules.system.mapper.SysBusinessCodeSeqMapper; +import org.jeecg.modules.system.service.ISysBusinessCodeSeqService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.List; + +/** + * @Description: 涓氬姟缂栫爜鐢熸垚搴忓垪 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Service +public class SysBusinessCodeSeqServiceImpl extends ServiceImpl<SysBusinessCodeSeqMapper, SysBusinessCodeSeq> implements ISysBusinessCodeSeqService { + + @Override + public SysBusinessCodeSeq queryByParams(String ruleId, String prefix, String yearValue, String monthValue, String dayValue) { + LambdaQueryWrapper<SysBusinessCodeSeq> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysBusinessCodeSeq::getRuleId, ruleId); + queryWrapper.orderByDesc(SysBusinessCodeSeq::getCreateTime); + if(StringUtils.isNotBlank(prefix)){ + queryWrapper.eq(SysBusinessCodeSeq::getPrefix, prefix); + }else { + queryWrapper.isNull(SysBusinessCodeSeq::getPrefix); + } + + if(StringUtils.isNotBlank(yearValue)){ + queryWrapper.eq(SysBusinessCodeSeq::getCurrentYear, yearValue); + }else { + queryWrapper.isNull(SysBusinessCodeSeq::getCurrentYear); + } + + if(StringUtils.isNotBlank(monthValue)){ + queryWrapper.eq(SysBusinessCodeSeq::getCurrentMonth, monthValue); + }else { + queryWrapper.isNull(SysBusinessCodeSeq::getCurrentMonth); + } + + if(StringUtils.isNotBlank(dayValue)){ + queryWrapper.eq(SysBusinessCodeSeq::getCurrentDay, dayValue); + }else { + queryWrapper.isNull(SysBusinessCodeSeq::getCurrentDay); + } + List<SysBusinessCodeSeq> list = super.list(queryWrapper); + if(CollectionUtil.isEmpty(list)){ + return null; + } + return list.get(0); + } +} -- Gitblit v1.9.3