SysCodeUtil.java 2.15 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;
    @Autowired
    private SysCodeConverter  converter;
    /**
     * 编号生成规则
     * @param sysCodeVO
     * @return
     */
    public   String getSequence(SysCodeVO sysCodeVO){
        //1、查询数据是否存在
        SysCodeDO sysCodeDO=queryInfoByCondition(sysCodeVO);
        String  taskvalue="";
        if(sysCodeDO!=null){
            //2、如果存在在修改编号值
            taskvalue=Integer.valueOf(sysCodeDO.getTaskvalue())+1+"";
            sysCodeDO.setTaskvalue(taskvalue);
            sysCodeMapper.updateById(sysCodeDO);
        }else {
            //3、不存在则新增
            taskvalue= getTaskValue(Integer.valueOf(sysCodeVO.getTaskchild()));
           sysCodeVO.setTaskvalue(taskvalue);
           sysCodeVO.setTaskname("自动生成序列号");
           SysCodeDO sysCodeDO1=converter.addRequest2DO(sysCodeVO);
           sysCodeMapper.insert(sysCodeDO1);
        }
        return taskvalue;
    }

    private  SysCodeDO queryInfoByCondition(SysCodeVO sysCodeVO){
        QueryWrapper<SysCodeDO> wrapper = new QueryWrapper<>();
        wrapper.eq(sysCodeVO.getCtype()!=null && !"".equals(sysCodeVO.getCtype()),"CTYPE",sysCodeVO.getCtype());
        wrapper.eq(sysCodeVO.getTaskno()!=null && !"".equals(sysCodeVO.getTaskno()),"TASKNO",sysCodeVO.getTaskno());
        wrapper.eq("STATE","1");
        wrapper.eq(sysCodeVO.getTaskchild()!=null && !"".equals(sysCodeVO.getTaskchild()),"TASKCHILD",sysCodeVO.getTaskchild());
        SysCodeDO sysCodeDO=sysCodeMapper.selectOne(wrapper);
        return sysCodeDO;

    }
    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;
    }


}