md
This commit is contained in:
parent
1b6cf5b65a
commit
e2fb5a93dc
@ -83,6 +83,11 @@ public class EmisCommonController extends EmisBaseController
|
||||
@Autowired
|
||||
private IEmisSettleInvoiceRecordService emisSettleInvoiceRecordService;
|
||||
|
||||
@Autowired
|
||||
private IEmisSettlePayRecordService emisSettlePayRecordService;
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
RedissonService redissonService;
|
||||
|
||||
@ -696,5 +701,20 @@ public class EmisCommonController extends EmisBaseController
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新计算账单开票状态
|
||||
* @param settleBillNo
|
||||
*/
|
||||
@Log(title = "重新计算收款状态", businessType = BusinessType.UPDATE)
|
||||
@RequestMapping("/reCalcSettleBillPayStatus")
|
||||
public void reCalcSettleBillPayStatus(String settleBillNo) {
|
||||
try{
|
||||
emisSettlePayRecordService.reCalcSettleBillPayStatus(settleBillNo);
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -76,4 +76,12 @@ public interface IEmisSettlePayRecordService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteEmisSettlePayRecordById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 重新计算收款状态
|
||||
* @param settleBillNo
|
||||
* @return
|
||||
*/
|
||||
public int reCalcSettleBillPayStatus(String settleBillNo);
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@ package com.xdadan.erp.emis.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.xdadan.erp.emis.domain.*;
|
||||
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
||||
@ -23,6 +24,7 @@ import com.xdadan.erp.emis.service.EmisBaseService;
|
||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -143,7 +145,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
emisSettlePayRecordMapper.insertEmisSettlePayRecord(emisSettlePayRecord);
|
||||
|
||||
// 重新计算账单收款信息
|
||||
reCalcSettleBillPayrecordInfo(emisSettlePayRecord.getSettleBillNo());
|
||||
reCalcSettleBillPayStatus(emisSettlePayRecord.getSettleBillNo());
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -153,7 +155,8 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
* @param settleBillNo
|
||||
* @return
|
||||
*/
|
||||
private int reCalcSettleBillPayrecordInfo(String settleBillNo){
|
||||
@Override
|
||||
public int reCalcSettleBillPayStatus(String settleBillNo){
|
||||
|
||||
EmisSettleBill oldBill =getSettleBillBySettleBillNo(settleBillNo);
|
||||
// 获取收款记录
|
||||
@ -162,12 +165,9 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
// 全部收款金额
|
||||
BigDecimal totalAllPayMoney = BigDecimal.ZERO;
|
||||
|
||||
|
||||
// 计算已收款金额
|
||||
BigDecimal totalPayMoney = BigDecimal.ZERO;
|
||||
|
||||
BigDecimal totalRefundMoney = BigDecimal.ZERO;
|
||||
|
||||
// 抵扣金额
|
||||
BigDecimal satisfyMoney = BigDecimal.ZERO;
|
||||
/* allowance_money */
|
||||
@ -180,7 +180,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
// refund_money
|
||||
BigDecimal refundMoney = BigDecimal.ZERO;
|
||||
|
||||
log.debug("收款状态更新===>应收:{}",oldBill.getRecMoney());
|
||||
log.debug("reCalcSettleBillPayStatus===>应收:{}",oldBill.getRecMoney());
|
||||
|
||||
for(EmisSettlePayRecord item:payRecordList){
|
||||
|
||||
@ -197,7 +197,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
}
|
||||
|
||||
// 总应收金额
|
||||
log.debug("收款状态更新===>totalPayMoney:{},satisfyMoney:{},allowanceMoney:{},deductionMoney:{},otherMoney:{}"
|
||||
log.debug("reCalcSettleBillPayStatus===>totalPayMoney:{},satisfyMoney:{},allowanceMoney:{},deductionMoney:{},otherMoney:{}"
|
||||
,totalPayMoney,satisfyMoney,allowanceMoney,allowanceMoney,deductionMoney,otherMoney);
|
||||
|
||||
// 收款金额-退款金额
|
||||
@ -207,10 +207,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
.add(allowanceMoney)
|
||||
.add(deductionMoney)
|
||||
.add(otherMoney)
|
||||
.subtract(refundMoney)
|
||||
;
|
||||
|
||||
totalRefundMoney=totalRefundMoney.add(refundMoney);
|
||||
.subtract(refundMoney);
|
||||
|
||||
EmisSettleBill newBill = new EmisSettleBill();
|
||||
newBill.setId(oldBill.getId());
|
||||
@ -218,34 +215,53 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
||||
newBill.setSatisfyMoney(satisfyMoney);
|
||||
newBill.setAllowanceMoney(allowanceMoney);
|
||||
newBill.setOtherMoney(otherMoney);
|
||||
|
||||
// 退款金额
|
||||
newBill.setRefundMoney(refundMoney);
|
||||
|
||||
// 判断收款状态 收款金额
|
||||
// 更新账单收款状态 收款金额
|
||||
int rstDif=totalAllPayMoney.compareTo(oldBill.getRecMoney());
|
||||
log.debug("收款状态更新===>收款总金额:{},应收:{},rsDif:{}",totalAllPayMoney,oldBill.getRecMoney(),rstDif);
|
||||
if( rstDif >= 0 ){
|
||||
// 已收款
|
||||
newBill.setPaymentStatus("1");
|
||||
log.debug("reCalcSettleBillPayStatus===>收款金额:{},应收:{}",totalAllPayMoney,oldBill.getRecMoney());
|
||||
if( totalAllPayMoney.compareTo(BigDecimal.ZERO) == 0 ){
|
||||
newBill.setPaymentStatus("0");
|
||||
}else{
|
||||
if( rstDif >= 0 ){
|
||||
// 已收款
|
||||
newBill.setPaymentStatus("1");
|
||||
emisSettleBillMapper.updateEmisSettleBill(newBill);
|
||||
}
|
||||
else{
|
||||
// 部分收款
|
||||
newBill.setPaymentStatus("2");
|
||||
emisSettleBillMapper.updateEmisSettleBill(newBill);
|
||||
}
|
||||
}
|
||||
else{
|
||||
// 部分收款
|
||||
newBill.setPaymentStatus("2");
|
||||
}
|
||||
|
||||
// 更新账单收款状态
|
||||
emisSettleBillMapper.updateEmisSettleBill(newBill);
|
||||
|
||||
// 更新子账单的收款状态
|
||||
// 如果全部付款则更新运单的付款状态
|
||||
if(rstDif>=0){
|
||||
List<EmisSettleSubBill> listSubBill=emisSettleSubBillMapper.selectSubBillListBySettleBillNo(settleBillNo);
|
||||
for (EmisSettleSubBill subBill:listSubBill) {
|
||||
EmisWaybill emisWaybill = new EmisWaybill();
|
||||
emisWaybill.setBillCode(subBill.getBillCode());
|
||||
emisWaybill.setPaymentStatus(newBill.getPaymentStatus());
|
||||
emisWaybillMapper.updatePayedStatus(emisWaybill);
|
||||
// 更新运单的收款状态
|
||||
if(totalAllPayMoney.compareTo(BigDecimal.ZERO) > 0){
|
||||
BigDecimal totalMoney = BigDecimal.ZERO;
|
||||
// 更新运单收款记录
|
||||
List<Map> listRel=emisSettlePayRelMapper.selectHasPayMapList(settleBillNo);
|
||||
if(!CollectionUtils.isEmpty(listRel)) {
|
||||
for(Map item:listRel){
|
||||
|
||||
String billNo= MapUtils.getString(item,"billNo",null);
|
||||
if(StringUtils.isEmpty(billNo)){
|
||||
continue;
|
||||
}
|
||||
EmisSettleSubBill subBill = emisSettleSubBillMapper.selectSettleSubBillBySubBillNo(billNo);
|
||||
BigDecimal sumMoney = BigDecimal.valueOf(Double.valueOf(item.get("sumMoney").toString()));
|
||||
totalMoney = totalMoney.add(sumMoney);
|
||||
|
||||
EmisWaybill emisWaybill = new EmisWaybill();
|
||||
emisWaybill.setBillCode(subBill.getBillCode());
|
||||
if(totalMoney.compareTo(subBill.getBillFee())>=0) {
|
||||
emisWaybill.setPaymentStatus("1");
|
||||
}else{
|
||||
emisWaybill.setPaymentStatus("2");
|
||||
}
|
||||
emisWaybillMapper.updatePayedStatus(emisWaybill);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user