|
@@ -16,6 +16,8 @@ import org.springframework.transaction.annotation.Propagation;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.time.LocalDate;
|
|
|
|
+import java.time.Month;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -71,20 +73,12 @@ public class SerialnumTplService {
|
|
|
|
|
|
@Transactional(readOnly = false,propagation = Propagation.REQUIRES_NEW)
|
|
@Transactional(readOnly = false,propagation = Propagation.REQUIRES_NEW)
|
|
public String genSerialNumNotNum(String companyId, String bizCode) throws Exception {
|
|
public String genSerialNumNotNum(String companyId, String bizCode) throws Exception {
|
|
-// String branchOffice = UserUtils.getSelectOffice().getBranchOffice();
|
|
|
|
-// if(StringUtils.isNotBlank(branchOffice)){
|
|
|
|
-// company = officeService.get(branchOffice);
|
|
|
|
-// }
|
|
|
|
-// if (company==null||StringUtils.isBlank(company.getId())){
|
|
|
|
-// throw new Exception("生成编号失败,公司信息不能为空");
|
|
|
|
-// }
|
|
|
|
//获取当前登录人信息
|
|
//获取当前登录人信息
|
|
UserDTO dto = UserUtils.getCurrentUserDTO();
|
|
UserDTO dto = UserUtils.getCurrentUserDTO();
|
|
Office office = officeMapper.selectById(companyId);
|
|
Office office = officeMapper.selectById(companyId);
|
|
if (StringUtils.isBlank(bizCode)){
|
|
if (StringUtils.isBlank(bizCode)){
|
|
throw new Exception("生成编号失败,业务类型不能为空");
|
|
throw new Exception("生成编号失败,业务类型不能为空");
|
|
}
|
|
}
|
|
-
|
|
|
|
SysSerialnumTpl numTpl = this.querySerialTpl(office, bizCode);
|
|
SysSerialnumTpl numTpl = this.querySerialTpl(office, bizCode);
|
|
if (numTpl==null){
|
|
if (numTpl==null){
|
|
//查询编号模板 {brspnm}DZ-{year}-{serialNum}
|
|
//查询编号模板 {brspnm}DZ-{year}-{serialNum}
|
|
@@ -99,8 +93,6 @@ public class SerialnumTplService {
|
|
if (numTpl==null){
|
|
if (numTpl==null){
|
|
throw new Exception("生成编号失败,请先设置相关业务编号模板");
|
|
throw new Exception("生成编号失败,请先设置相关业务编号模板");
|
|
}
|
|
}
|
|
- if ("0".equals(office.getParentId()))
|
|
|
|
- office.setParentId(null);
|
|
|
|
String year = DateUtils.formatDate(new Date(), "yyyy");
|
|
String year = DateUtils.formatDate(new Date(), "yyyy");
|
|
if(!year.equals(numTpl.getYearBuilt())){
|
|
if(!year.equals(numTpl.getYearBuilt())){
|
|
serialnumTplMapper.resetSerialNum(numTpl.getId(),numTpl.getYearBuilt(),year);
|
|
serialnumTplMapper.resetSerialNum(numTpl.getId(),numTpl.getYearBuilt(),year);
|
|
@@ -111,11 +103,35 @@ public class SerialnumTplService {
|
|
if (i!=1){
|
|
if (i!=1){
|
|
throw new Exception("生成编号失败,请稍后重试");
|
|
throw new Exception("生成编号失败,请稍后重试");
|
|
}
|
|
}
|
|
- String companyShortname = UserUtils.getSysParam("company_shortname", dto.getCompanyDTO().getId());
|
|
|
|
- map.put("spnm",StringUtils.isBlank(companyShortname)?"":companyShortname);
|
|
|
|
- String branchShortname = UserUtils.getSysParam("branch_shortname", dto.getCompanyDTO().getId());
|
|
|
|
- map.put("brspnm", StringUtils.isBlank(branchShortname)?"":branchShortname);
|
|
|
|
- map.put("year",year);
|
|
|
|
|
|
+ String num = String.valueOf(numTpl.getSerialNum() + 1);
|
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
|
+ for(int x = 0; x < (numTpl.getSerialNumLen() - num.length()); x++) {
|
|
|
|
+ sb.append("0");
|
|
|
|
+ }
|
|
|
|
+ sb.append(num);
|
|
|
|
+ //查询公司简称
|
|
|
|
+ if (serialTpl.contains("spnm")) {
|
|
|
|
+ String companyShortname = UserUtils.getSysParam("company_shortname");
|
|
|
|
+ map.put("spnm", StringUtils.isBlank(companyShortname) ? "" : companyShortname);
|
|
|
|
+ }
|
|
|
|
+ //查询分公司简称
|
|
|
|
+ if (serialTpl.contains("brspnm")) {
|
|
|
|
+ String branchShortname = UserUtils.getSysParam("branch_shortname");
|
|
|
|
+ map.put("brspnm", StringUtils.isBlank(branchShortname) ? "" : branchShortname);
|
|
|
|
+ }
|
|
|
|
+ //年份
|
|
|
|
+ if (serialTpl.contains("year")) {
|
|
|
|
+ map.put("year", year);
|
|
|
|
+ }
|
|
|
|
+ //月份
|
|
|
|
+ if (serialTpl.contains("month")) {
|
|
|
|
+ int month = new Date().getMonth() + 1;
|
|
|
|
+ map.put("month", month+"");
|
|
|
|
+ }
|
|
|
|
+ //序列号
|
|
|
|
+ if (serialTpl.contains("serialNum")) {
|
|
|
|
+ map.put("serialNum", sb.toString());
|
|
|
|
+ }
|
|
String serNum = StringUtils.renderString(serialTpl, map);
|
|
String serNum = StringUtils.renderString(serialTpl, map);
|
|
return serNum;
|
|
return serNum;
|
|
}
|
|
}
|