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; @@ -49,6 +51,9 @@ @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("æ·»å æåï¼"); } 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) 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("æ·»å æåï¼"); } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java
@@ -76,8 +76,4 @@ @Excel(name = "åºå·é¿åº¦", width = 15) @ApiModelProperty(value = "åºå·é¿åº¦") private Integer seqLength; /**å½ååºå·*/ @Excel(name = "å½ååºå·", width = 15) @ApiModelProperty(value = "å½ååºå·") private Integer currentNum; } 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; } 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> { } 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> 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); } 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); } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java
@@ -1,11 +1,25 @@ 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: ä¸å¡ç¼ç è§å @@ -16,4 +30,99 @@ @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(); } } 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); } }