This commit is contained in:
linfso 2024-11-21 16:46:43 +08:00
parent a0baac97ef
commit c00b7cc5f4

View File

@ -532,42 +532,67 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
// 判断是否有不开票的运单,如果有不开票的运单
Map noNeedOpenBillMap=emisSettleSubBillMapper.getNoNeedOpenBillSum(settleBillNo);
BigDecimal totalNoNeed=BigDecimal.ZERO;
BigDecimal totalNoNeedMoney=BigDecimal.ZERO;
if(noNeedOpenBillMap!=null){
totalAllMoney=totalAllMoney.add(totalMoney);
Integer totalCnt=Integer.valueOf(noNeedOpenBillMap.get("totalCnt").toString());
if(totalCnt>0){
totalNoNeed=BigDecimal.valueOf(Double.valueOf(noNeedOpenBillMap.get("totalNoNeed").toString()).doubleValue());
totalAllMoney=totalAllMoney.add(totalNoNeed);
totalNoNeedMoney=BigDecimal.valueOf(Double.valueOf(noNeedOpenBillMap.get("totalNoNeed").toString()).doubleValue());
totalAllMoney=totalAllMoney.add(totalNoNeedMoney);
}
}else{
totalAllMoney=totalMoney;
}
/*
未开票: 不开票金额+开票金额==0
已开票: 不开票金额==0 && 开票金额>=应收金额
不开票: 开票金额==0 && 不开票金额>=应收金额
已完成: 不开票金额>0 && 开票金额>0 && (开票金额+不开票金额)>=应收金额
部分开票: 开票金额>0 && (开票金额+不开票金额)>=应收金额
if(totalNoNeed.compareTo(BigDecimal.ZERO)>0){
if (totalAllMoney.compareTo(BigDecimal.ZERO) == 0) {
newBill.setOpenBillStatus("0");
} else {
if (oldBill.getRecMoney().compareTo(totalAllMoney) > 0) {
newBill.setOpenBillStatus("2");
} else {
// 已完成
newBill.setOpenBillStatus("4");
}
}
开票金额==0:
*/
// totalAllMoney == 0 未开票
if (totalAllMoney.compareTo(BigDecimal.ZERO) == 0) {
newBill.setOpenBillStatus("0");
}
// totalAllMoney > 0
else {
if (totalAllMoney.compareTo(BigDecimal.ZERO) == 0) {
newBill.setOpenBillStatus("0");
} else {
if (oldBill.getRecMoney().compareTo(totalAllMoney) > 0) {
newBill.setOpenBillStatus("2");
} else {
// 有实开票
if(totalMoney.compareTo(BigDecimal.ZERO) > 0) {
// 已开票
if( totalMoney.compareTo(oldBill.getRecMoney()) >=0 ){
newBill.setOpenBillStatus("1");
}
else{
// 有不开票
if(totalNoNeedMoney.compareTo(BigDecimal.ZERO) > 0) {
if( totalAllMoney.compareTo(oldBill.getRecMoney()) >=0 ){
// 已完成
newBill.setOpenBillStatus("4");
}
}else{
// 部分开票
newBill.setOpenBillStatus("2");
}
}
}
// 无实开票
else{
// 不开票
if( totalNoNeedMoney.compareTo(oldBill.getRecMoney()) >=0 ){
newBill.setOpenBillStatus("3");
}else{
// 未开票
newBill.setOpenBillStatus("0");
}
}
}
// 更新账单开票状态
emisSettleBillMapper.updateEmisSettleBill(newBill);