|
@@ -29,6 +29,8 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
import java.util.Set;
|
|
|
+import java.util.regex.Matcher;
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
/**
|
|
|
* 项目表(Project)表服务实现类
|
|
@@ -173,6 +175,19 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
return child.getId();
|
|
|
}
|
|
|
|
|
|
+ private int getSerial(String number){
|
|
|
+ String regex = "-(\\d+)$";
|
|
|
+ Pattern pattern = Pattern.compile(regex);
|
|
|
+ Matcher matcher = pattern.matcher(number);
|
|
|
+ if(matcher.find()){
|
|
|
+ String serial = matcher.group(1);
|
|
|
+ return Integer.parseInt(serial);
|
|
|
+ } else {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
private void updateVirtualContract(Project child) {
|
|
|
Contract contract = new Contract();
|
|
|
String pid = child.getPid();
|
|
@@ -183,7 +198,6 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
contract.setProjectId(child.getId());
|
|
|
contract.setVirtualAmount(child.getOutputValue());
|
|
|
contract.setContractAmount(mainContract.getContractAmount());
|
|
|
- contract.setContractNumber(mainContract.getContractNumber());
|
|
|
contract.setName(mainContract.getName());
|
|
|
contract.setSignWay(mainContract.getSignWay());
|
|
|
contract.setIsSign(mainContract.getIsSign());
|
|
@@ -191,6 +205,15 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
contract.setSecondType(mainContract.getSecondType());
|
|
|
contract.setContractOn(mainContract.getContractOn());
|
|
|
contract.setContractOff(mainContract.getContractOff());
|
|
|
+ List<Contract> childs = contractMapper.selectVirtualList(mainContract.getId());
|
|
|
+ int serial = 1;
|
|
|
+ for (Contract c : childs) {
|
|
|
+ int i = getSerial(c.getContractNumber());
|
|
|
+ if(i != -1){
|
|
|
+ serial = Math.max(serial,i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ contract.setContractNumber(mainContract.getContractNumber() + (serial+1));
|
|
|
} else {
|
|
|
contract.setContractType(ContractConstants.TYPE_VIRTUAL);
|
|
|
contract.setProjectId(child.getId());
|