You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.5 KiB
70 lines
2.5 KiB
package com.xujie.sys.modules.ruler;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.xujie.sys.common.utils.SpringContextUtils;
|
|
import com.xujie.sys.modules.sys.entity.SysCodeCount;
|
|
import com.xujie.sys.modules.sys.service.impl.SysCodeCountServiceImpl;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
public class CodeRule implements IFillRuleHandler{
|
|
@Override
|
|
public Object execute(JSONObject params, JSONObject formData) {
|
|
String codeno=formData.get("codeno").toString();
|
|
SysCodeCountServiceImpl sysCodeCountImpl = (SysCodeCountServiceImpl)SpringContextUtils.getBean("SysCodeCountServiceImpl");
|
|
SimpleDateFormat format = new SimpleDateFormat("yyMMdd") ;
|
|
String updateTime=format.format(new Date()) ;
|
|
QueryWrapper<SysCodeCount> queryWrapper=new QueryWrapper<>() ;
|
|
queryWrapper.eq("code_no",codeno);
|
|
List<SysCodeCount> firs= sysCodeCountImpl.list(queryWrapper);
|
|
|
|
/*SysCodeCount fir = null;
|
|
int cnum=0;
|
|
if(CollectionUtils.isEmpty(firs)){
|
|
cnum++;
|
|
fir=new SysCodeCount();
|
|
fir.setCnum(cnum);
|
|
fir.setCodeNo(codeno);
|
|
fir.setUpdateDate(new Date());
|
|
fir.setCreateDate(new Date());
|
|
sysCodeCountImpl.save(fir);
|
|
}else{
|
|
fir = firs.get(0);
|
|
cnum= fir.getCnum();
|
|
cnum++;
|
|
fir.setCnum(cnum);
|
|
fir.setUpdateDate(new Date());
|
|
sysCodeCountImpl.updateById(fir);
|
|
}
|
|
String value = codeno + updateDate + String.format("%04d", cnum) ;
|
|
return value;*/
|
|
|
|
SysCodeCount fir = null;
|
|
int cnum=0;
|
|
if(CollectionUtils.isEmpty(firs)){
|
|
cnum++;
|
|
fir=new SysCodeCount();
|
|
fir.setCnum(cnum);
|
|
fir.setCodeNo(codeno);
|
|
fir.setUpdateTime(updateTime);
|
|
sysCodeCountImpl.save(fir);
|
|
|
|
}else{
|
|
fir = firs.get(0);
|
|
if(!updateTime.equals(fir.getUpdateTime())){
|
|
fir.setUpdateTime(updateTime);
|
|
fir.setCnum(0);
|
|
}
|
|
cnum= fir.getCnum();
|
|
cnum++;
|
|
fir.setCnum(cnum);
|
|
sysCodeCountImpl.updateById(fir);
|
|
}
|
|
String value = codeno + updateTime + String.format("%04d", cnum) ;
|
|
return value;
|
|
}
|
|
}
|