zhangherong
2025-03-19 103f52ade0f77e420dec306ea3b51d0a3c0ac3ee
art: 设备管理-系统业务编码生成,工艺参数维护功能修改
已添加5个文件
已修改6个文件
314 ■■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysBusinessCodeRuleController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeSeq.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysBusinessCodeSeqMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysBusinessCodeSeqMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeRuleService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeSeqService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeSeqServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}