Commit 95fd187a by lzxry

bugfix

parent 81170a96
...@@ -641,11 +641,12 @@ public class ContractServiceImpl implements ContractService { ...@@ -641,11 +641,12 @@ public class ContractServiceImpl implements ContractService {
Contract contract = contractRepository.findByCodePlatform(relationCode, platform); Contract contract = contractRepository.findByCodePlatform(relationCode, platform);
if (StringUtils.isEmpty(contract.getNextSignedDate())) { if (StringUtils.isEmpty(contract.getNextSignedDate())) {
if (ContractStatusEnum.LATE.getKey().equals(resource.getStatus())) {//如果晚录则设置绑定下一份合同的日期为签订月的最后一天 /*if (ContractStatusEnum.LATE.getKey().equals(resource.getStatus())) {//如果晚录则设置绑定下一份合同的日期为签订月的最后一天
contract.setNextSignedDate(dateTime.dayOfMonth().withMaximumValue().toString("yyyy-MM-dd")); contract.setNextSignedDate(dateTime.dayOfMonth().withMaximumValue().toString("yyyy-MM-dd"));
} else { } else {
contract.setNextSignedDate(dateTime.plusDays(-1).toString("yyyy-MM-dd"));//签订日的前一天 contract.setNextSignedDate(dateTime.plusDays(-1).toString("yyyy-MM-dd"));//签订日的前一天
} }*/
contract.setNextSignedDate(dateTime.plusDays(-1).toString("yyyy-MM-dd"));//签订日的前一天
contract.setNextSignedContractCode(resource.getContractCode()); contract.setNextSignedContractCode(resource.getContractCode());
contractRepository.save(contract); contractRepository.save(contract);
break; break;
......
...@@ -540,7 +540,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -540,7 +540,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
} }
} }
groupContracts = map.values();//只要不加入传进来的那个list里面就不会影响查询的列表 groupContracts = map.values();//只要不加入传进来的那个list里面就不会影响查询的列表
break; //break;
}else if((groupContracts.size()==1&&!StringUtils.isEmpty(groupContract.getNextSignedDate()))||(!"2".equals(groupContract.getContractType()) && map.get(groupContract.getNextSignedContractCode())==null)){ }else if((groupContracts.size()==1&&!StringUtils.isEmpty(groupContract.getNextSignedDate()))||(!"2".equals(groupContract.getContractType()) && map.get(groupContract.getNextSignedContractCode())==null)){
List<Contract> contractList = contractRepository.findByRelationCode(groupContract.getContractCode()); List<Contract> contractList = contractRepository.findByRelationCode(groupContract.getContractCode());
for (Contract contract1 : contractList) { for (Contract contract1 : contractList) {
...@@ -549,7 +549,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -549,7 +549,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
} }
} }
groupContracts = map.values(); groupContracts = map.values();
break; //break;
} }
} }
...@@ -732,7 +732,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -732,7 +732,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
contract.setIntervaIncomeShare(unitPriceAccurate.multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue()); contract.setIntervaIncomeShare(unitPriceAccurate.multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
//调整金,正常情况下可能存在之前合同超出的流量所产生的调整金(记录在签订日) //调整金,正常情况下可能存在之前合同超出的流量所产生的调整金(记录在签订日)
BigDecimal beforSigndFlow = null; BigDecimal beforSigndFlow = null;
if (checkTwoTime(selected[0], contractPart[0]) && checkTwoTime(contractPart[1], selected[0])) { if (checkTwoTime(selected[0], contractPart[0]) && checkTwoTime(contractPart[0], selected[1])) {
DateTime startDate = new DateTime(contract.getStartDate()); DateTime startDate = new DateTime(contract.getStartDate());
DateTime endDate = contractPart[0].plusDays(-1);//签约日前一天 DateTime endDate = contractPart[0].plusDays(-1);//签约日前一天
beforSigndFlow = tkioFlowRepository.sumFlowByContractCodeAndDs(contract.getContractCode(), startDate.toString("yyyy-MM-dd"), endDate.toString("yyyy-MM-dd")); beforSigndFlow = tkioFlowRepository.sumFlowByContractCodeAndDs(contract.getContractCode(), startDate.toString("yyyy-MM-dd"), endDate.toString("yyyy-MM-dd"));
...@@ -795,19 +795,17 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -795,19 +795,17 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
clickTenThousand = new BigDecimal(clickFlow / 10000.0 * 100); clickTenThousand = new BigDecimal(clickFlow / 10000.0 * 100);
} }
contract.setAdjustmentFund(unitPriceAccurate.multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue()); contract.setAdjustmentFund(unitPriceAccurate.multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
//超出流量调整金 //超出流量也作为调整金,流量超出了说明单价就是按照补充协议一个合同来计算,不超出也没关系,下面这段代码查不到流量,流量同步决定了某天流量应该归档到某合同上
if (checkTwoTime(selected[0], contractPart[0]) && checkTwoTime(contractPart[1], selected[0])) {
DateTime startDate = new DateTime(contract.getStartDate()); DateTime startDate = new DateTime(contract.getStartDate());
DateTime endDate = creatPoints[1].plusDays(-1);//签约录入日前一天 DateTime endDate = new DateTime(contract.getSignedDate()).plusDays(-1);//签定日前一天
beforSigndFlow = tkioFlowRepository.sumFlowByContractCodeAndDs(contract.getContractCode(), startDate.toString("yyyy-MM-dd"), endDate.toString("yyyy-MM-dd")); beforSigndFlow = tkioFlowRepository.sumFlowByContractCodeAndDs(contract.getContractCode(), startDate.toString("yyyy-MM-dd"), endDate.toString("yyyy-MM-dd"));
beforSigndFlow = beforSigndFlow == null ? new BigDecimal(0) : beforSigndFlow; beforSigndFlow = beforSigndFlow == null ? new BigDecimal(0) : beforSigndFlow;
BigDecimal beforSigndAdjustmentFund = beforSigndFlow.divide(new BigDecimal(10000.0 / 100)).multiply(unitPriceAccurate); BigDecimal beforSigndAdjustmentFund = beforSigndFlow.divide(new BigDecimal(10000.0 / 100)).multiply(unitPriceAccurate);
contract.setAdjustmentFund(contract.getAdjustmentFund() + beforSigndAdjustmentFund.setScale(0, BigDecimal.ROUND_HALF_UP).longValue()); contract.setAdjustmentFund(contract.getAdjustmentFund() + beforSigndAdjustmentFund.setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
} /*//处理上一个合同的调整金
//处理上一个合同的调整金
if (i > 0) { if (i > 0) {
contractsArray[i - 1].setAdjustmentFund(contractsArray[i - 1].getAdjustmentFund() - contractsArray[i - 1].getUnitPriceAccurate().multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue()); contractsArray[i - 1].setAdjustmentFund(contractsArray[i - 1].getAdjustmentFund() - contractsArray[i - 1].getUnitPriceAccurate().multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
} }*/
} else { } else {
contract.setAdjustmentFund(0L); contract.setAdjustmentFund(0L);
...@@ -817,7 +815,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -817,7 +815,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
clickNum = tkioFlowRepository.sumFlowByDsAndContractCodes(contractPart[0].toString("yyyy-MM-dd"), usePart[1].toString("yyyy-MM-dd"), codes); clickNum = tkioFlowRepository.sumFlowByDsAndContractCodes(contractPart[0].toString("yyyy-MM-dd"), usePart[1].toString("yyyy-MM-dd"), codes);
clickFlow = clickNum == null ? 0L : clickNum.longValue(); clickFlow = clickNum == null ? 0L : clickNum.longValue();
if (beforSigndFlow != null) { if (beforSigndFlow != null) {
clickFlow += beforSigndFlow.intValue(); // clickFlow += beforSigndFlow.intValue();
} }
contract.setIncomeGross(unitPriceAccurate.multiply(new BigDecimal(clickFlow / 10000.0 * 100)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue()); contract.setIncomeGross(unitPriceAccurate.multiply(new BigDecimal(clickFlow / 10000.0 * 100)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
} }
...@@ -828,10 +826,12 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -828,10 +826,12 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
Long lastDay; Long lastDay;
DateTime lastDate[]; DateTime lastDate[];
if (isLater) { if (isLater) {
lastDate = new DateTime[]{creatPoints[1], contractPart[1].plusDays(-1)}; //补充协议的直接按照开始时间算就行
lastDate = new DateTime[]{new DateTime(contract.getStartDate()), contractPart[1].plusDays(-1)};
} else { } else {
lastDate = new DateTime[]{contractPart[0], contractPart[1].plusDays(-1)}; lastDate = new DateTime[]{contractPart[0], contractPart[1].plusDays(-1)};
} }
//流量同步规则决定了某日流量应该是哪个合同的,所以开始日期不重要,补充协议只需要查开始日期即可
//合同除去最后一天的流量 //合同除去最后一天的流量
ArrayList<String> codes = new ArrayList<>(); ArrayList<String> codes = new ArrayList<>();
for (int k = 0; k <= i; k++) { for (int k = 0; k <= i; k++) {
...@@ -844,7 +844,6 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -844,7 +844,6 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
clickTenThousand = new BigDecimal(clickFlow / 10000.0 * 100); clickTenThousand = new BigDecimal(clickFlow / 10000.0 * 100);
} }
long beforeTheMoney = unitPriceAccurate.multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue(); long beforeTheMoney = unitPriceAccurate.multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
//最后一天的流量 //最后一天的流量
clickNum = tkioFlowRepository.sumFlowByDsAndContractCodes(contractPart[1].toString("yyyy-MM-dd"), contractPart[1].toString("yyyy-MM-dd"), codes); clickNum = tkioFlowRepository.sumFlowByDsAndContractCodes(contractPart[1].toString("yyyy-MM-dd"), contractPart[1].toString("yyyy-MM-dd"), codes);
clickFlow = clickNum == null ? 0L : clickNum.longValue(); clickFlow = clickNum == null ? 0L : clickNum.longValue();
...@@ -855,8 +854,8 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -855,8 +854,8 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
//合同的税后总金额减去最后合同一日之前的钱和调整金 //合同的税后总金额减去最后合同一日之前的钱和调整金
long excludTax = new BigDecimal(totalprice) long excludTax = new BigDecimal(totalprice)
.setScale(2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100L)).longValue(); .setScale(2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100L)).longValue();
//TODO 超出的流量算在了调整金了这里好像减去了 //TODO 超出的流量算在了调整金了
lastDay = excludTax - contract.getAdjustmentFund() - beforeTheMoney; lastDay = excludTax - beforeTheMoney;
//最后一日 或 包含最后一日 时 //最后一日 或 包含最后一日 时
contract.setIntervaIncomeShare(contract.getIntervaIncomeShare() - lastDayTheMoney + lastDay); contract.setIntervaIncomeShare(contract.getIntervaIncomeShare() - lastDayTheMoney + lastDay);
contract.setIncomeGross(contract.getIncomeGross() - lastDayTheMoney + lastDay); contract.setIncomeGross(contract.getIncomeGross() - lastDayTheMoney + lastDay);
...@@ -924,7 +923,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -924,7 +923,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
contract.setAdjustmentFund(0L); contract.setAdjustmentFund(0L);
} }
/*
//处理上一份合同 //处理上一份合同
BigDecimal clickNum = tkioFlowRepository.sumFlowByDsAndContractCodes(contractPart[0].toString("yyyy-MM-dd"), creatPoints[1].plusDays(-1).toString("yyyy-MM-dd"), codes); BigDecimal clickNum = tkioFlowRepository.sumFlowByDsAndContractCodes(contractPart[0].toString("yyyy-MM-dd"), creatPoints[1].plusDays(-1).toString("yyyy-MM-dd"), codes);
long clickFlow = clickNum == null ? 0L : clickNum.longValue(); long clickFlow = clickNum == null ? 0L : clickNum.longValue();
...@@ -934,7 +933,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService { ...@@ -934,7 +933,7 @@ public class ShareIncomeServiceImpl implements ShareIncomeService {
} }
if (i > 0) { if (i > 0) {
contractsArray[i - 1].setAdjustmentFund(contractsArray[i - 1].getAdjustmentFund() - contractsArray[i - 1].getUnitPriceAccurate().multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue()); contractsArray[i - 1].setAdjustmentFund(contractsArray[i - 1].getAdjustmentFund() - contractsArray[i - 1].getUnitPriceAccurate().multiply(clickTenThousand).setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
} }*/
} }
if (checkTwoTime(selected[0], contractPart[1]) && checkTwoTime(contractPart[1], selected[1])) { if (checkTwoTime(selected[0], contractPart[1]) && checkTwoTime(contractPart[1], selected[1])) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment