SysCodeUtil.java 2.16 KB
package com.pashanhoo.common.util.SysCode;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
public class SysCodeUtil {
    @Autowired
    private SysCodeMapper sysCodeMapper;

    /**
     * 编号生成规则
     *
     * @param sysCodeVO
     * @return
     */
    public String getSequence(SysCodeVO sysCodeVO) {
        //1、查询数据是否存在
        SysCodeDO sysCodeDO = queryInfoByCondition(sysCodeVO);
        String taskValue;
        if (sysCodeDO != null) {
            String lastString = sysCodeDO.getTaskvalue().substring(2);
            int code = Integer.parseInt(lastString) + 1;
            taskValue = "BL" + code;
            sysCodeDO.setTaskvalue(taskValue);
            sysCodeMapper.updateById(sysCodeDO);
        } else {
            //3、不存在则新增
            SysCodeDO newSysCode = new SysCodeDO();
            newSysCode.setCtype(sysCodeVO.getCtype());
            newSysCode.setState("1");
            newSysCode.setTaskno(sysCodeVO.getTaskno());
            newSysCode.setTaskname(sysCodeVO.getTaskname());
            // taskValue = getTaskValue(sysCodeVO.getTaskchild());
            taskValue = sysCodeVO.getTaskno() + "00000";
            newSysCode.setTaskvalue(taskValue);
            newSysCode.setTaskchild(sysCodeVO.getTaskchild() + "");
            sysCodeMapper.insert(newSysCode);
        }
        return taskValue;
    }

    private SysCodeDO queryInfoByCondition(SysCodeVO sysCodeVO) {
        QueryWrapper<SysCodeDO> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(SysCodeDO::getCtype, sysCodeVO.getCtype()).eq(SysCodeDO::getTaskno, sysCodeVO.getTaskno()).eq(SysCodeDO::getTaskchild, sysCodeVO.getTaskchild());
        return sysCodeMapper.selectOne(wrapper);

    }

    private String getTaskValue(int length) {
        List<String> list = new ArrayList<String>(length - 1);
        String num = "";
        for (int i = 0; i < list.size(); i++) {
            num += "0";
        }
        num = num + 1;
        return num;
    }


}