O
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

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