md
This commit is contained in:
parent
5b3cd388ea
commit
bd54ba7f99
@ -237,28 +237,12 @@ public class EmisBaseService {
|
|||||||
if(!CollectionUtils.isEmpty(listCreditCustomer)){
|
if(!CollectionUtils.isEmpty(listCreditCustomer)){
|
||||||
EmisCreditCustomer item0=listCreditCustomer.get(0);
|
EmisCreditCustomer item0=listCreditCustomer.get(0);
|
||||||
BigDecimal preBalance=item0.getCreditMoney().subtract(item0.getUseMoney());
|
BigDecimal preBalance=item0.getCreditMoney().subtract(item0.getUseMoney());
|
||||||
|
|
||||||
if(emisWaybill.getFreight().compareTo(preBalance) == 1 ){
|
if(emisWaybill.getFreight().compareTo(preBalance) == 1 ){
|
||||||
// 提示异常
|
// 提示异常
|
||||||
throw new EmisBizError(EmisBizErrorType.FAIL, "超出信用额度");
|
throw new EmisBizError(EmisBizErrorType.FAIL, "超出信用额度");
|
||||||
}else{
|
}else{
|
||||||
|
// 加入额度占用
|
||||||
// 当前余额,变动后余额,变动金额
|
|
||||||
BigDecimal backBalance=preBalance.subtract(emisWaybill.getFreight());
|
|
||||||
BigDecimal changeMoney=emisWaybill.getFreight();
|
BigDecimal changeMoney=emisWaybill.getFreight();
|
||||||
|
|
||||||
// 扣减额度,插入扣额度数据明细
|
|
||||||
EmisCreditCustomerRecord itemRecord=new EmisCreditCustomerRecord();
|
|
||||||
itemRecord.setAccCode(item0.getAccCode());
|
|
||||||
itemRecord.setCustomerCode(item0.getCustomerCode());
|
|
||||||
itemRecord.setBillCode(emisWaybill.getBillCode());
|
|
||||||
itemRecord.setPreBalance(preBalance);
|
|
||||||
itemRecord.setChangeMoney(emisWaybill.getFreight());
|
|
||||||
itemRecord.setChangeType("2");
|
|
||||||
itemRecord.setBackBalance(backBalance);
|
|
||||||
emisCreditCustomerRecordMapper.insertEmisCreditCustomerRecord(itemRecord);
|
|
||||||
|
|
||||||
// 更新使用额度
|
|
||||||
emisCreditCustomerMapper.changeBalance(item0.getAccCode(),changeMoney);
|
emisCreditCustomerMapper.changeBalance(item0.getAccCode(),changeMoney);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -280,22 +264,8 @@ public class EmisBaseService {
|
|||||||
// 提示异常
|
// 提示异常
|
||||||
throw new EmisBizError(EmisBizErrorType.FAIL, "超出信用额度");
|
throw new EmisBizError(EmisBizErrorType.FAIL, "超出信用额度");
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
// 当前余额,变动后余额,变动金额
|
|
||||||
BigDecimal backBalance=preBalance.subtract(emisWaybill.getFreight());
|
|
||||||
BigDecimal changeMoney=emisWaybill.getFreight();
|
|
||||||
// 扣减额度,插入扣额度数据明细
|
|
||||||
EmisCreditSalesmenRecord itemRecord=new EmisCreditSalesmenRecord();
|
|
||||||
itemRecord.setAccCode(item0.getAccCode());
|
|
||||||
itemRecord.setSalesmen(item0.getSalesmen());
|
|
||||||
itemRecord.setBillCode(emisWaybill.getBillCode());
|
|
||||||
itemRecord.setPreBalance(preBalance);
|
|
||||||
itemRecord.setChangeMoney(emisWaybill.getFreight());
|
|
||||||
itemRecord.setChangeType("2");
|
|
||||||
itemRecord.setBackBalance(backBalance);
|
|
||||||
emisCreditSalesmenRecordMapper.insertEmisCreditSalesmenRecord(itemRecord);
|
|
||||||
|
|
||||||
// 更新余额
|
// 更新余额
|
||||||
|
BigDecimal changeMoney=emisWaybill.getFreight();
|
||||||
emisCreditSalesmenMapper.changeBalance(item0.getAccCode(),changeMoney);
|
emisCreditSalesmenMapper.changeBalance(item0.getAccCode(),changeMoney);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -303,36 +273,101 @@ public class EmisBaseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除运单使用信用额度
|
* 重新计算使用信用额度
|
||||||
* @param emisWaybill
|
* @param oldBill
|
||||||
|
* @param newBill
|
||||||
*/
|
*/
|
||||||
public void deleteUseQuotaCredit(EmisWaybill emisWaybill) throws EmisBizError {
|
public void adjustUseQuotaCredit(EmisWaybill oldBill,EmisWaybill newBill) throws EmisBizError {
|
||||||
// 根据运单查询使用记录,删除以前的记录插入新的记录
|
|
||||||
// 删除月结使用
|
// 更新旧的统计
|
||||||
EmisCreditCustomerRecord queryCreditCustomerRecord=new EmisCreditCustomerRecord();
|
if(oldBill!=null) {
|
||||||
queryCreditCustomerRecord.setBillCode(emisWaybill.getBillCode());
|
String oldPaymentType = oldBill.getPaymentType();
|
||||||
queryCreditCustomerRecord.setChangeType("2");
|
if ("2".equals(oldPaymentType)
|
||||||
List<EmisCreditCustomerRecord> listCreditCustomerRecord=emisCreditCustomerRecordMapper.selectEmisCreditCustomerRecordList(queryCreditCustomerRecord);
|
|| "4".equals(oldPaymentType)
|
||||||
if(!CollectionUtils.isEmpty(listCreditCustomerRecord)){
|
|| "5".equals(oldPaymentType)
|
||||||
for (EmisCreditCustomerRecord item:listCreditCustomerRecord) {
|
) {
|
||||||
// 恢复额度
|
EmisCreditCustomer queryCreditCustomer = new EmisCreditCustomer();
|
||||||
emisCreditCustomerMapper.changeBalance(item.getAccCode(),BigDecimal.ZERO.subtract(item.getChangeMoney()));
|
queryCreditCustomer.setMonthlyPayCode(oldBill.getCustNo());
|
||||||
// 删除记录
|
queryCreditCustomer.getParams().put("sendDate", oldBill.getSendDate());
|
||||||
emisCreditCustomerRecordMapper.deleteEmisCreditCustomerRecordById(item.getId());
|
queryCreditCustomer.setTransType(oldBill.getTransType());
|
||||||
|
List<EmisCreditCustomer> listCreditCustomer = emisCreditCustomerMapper.selectEmisCreditCustomerList(queryCreditCustomer);
|
||||||
|
|
||||||
|
if (!CollectionUtils.isEmpty(listCreditCustomer)) {
|
||||||
|
EmisCreditCustomer item0 = listCreditCustomer.get(0);
|
||||||
|
// 获取已使用金额
|
||||||
|
BigDecimal useMoney = emisCreditCustomerMapper.getUseMoney(item0);
|
||||||
|
|
||||||
|
EmisCreditCustomer upd = new EmisCreditCustomer();
|
||||||
|
upd.setId(item0.getId());
|
||||||
|
upd.setUseMoney(useMoney);
|
||||||
|
emisCreditCustomerMapper.updateEmisCreditCustomer(upd);
|
||||||
|
}
|
||||||
|
} else if ("1".equals(oldPaymentType) || "3".equals(oldPaymentType)) {
|
||||||
|
// 现金额度占用
|
||||||
|
EmisCreditSalesmen queryCreditSalesmen = new EmisCreditSalesmen();
|
||||||
|
queryCreditSalesmen.setSalesmen(oldBill.getSalesmen());
|
||||||
|
queryCreditSalesmen.getParams().put("sendDate", oldBill.getSendDate());
|
||||||
|
queryCreditSalesmen.setTransType(oldBill.getTransType());
|
||||||
|
queryCreditSalesmen.setBlOpen("1");
|
||||||
|
List<EmisCreditSalesmen> listCreditSalesmen = emisCreditSalesmenMapper.selectEmisCreditSalesmenList(queryCreditSalesmen);
|
||||||
|
|
||||||
|
if (!CollectionUtils.isEmpty(listCreditSalesmen)) {
|
||||||
|
EmisCreditSalesmen item0 = listCreditSalesmen.get(0);
|
||||||
|
// 获取已使用金额
|
||||||
|
BigDecimal useMoney = emisCreditSalesmenMapper.getUseMoney(item0);
|
||||||
|
|
||||||
|
EmisCreditSalesmen upd = new EmisCreditSalesmen();
|
||||||
|
upd.setId(item0.getId());
|
||||||
|
upd.setUseMoney(useMoney);
|
||||||
|
emisCreditSalesmenMapper.updateEmisCreditSalesmen(upd);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除现金使用
|
// 更新新的统计
|
||||||
EmisCreditSalesmenRecord queryCreditSalesmenRecord=new EmisCreditSalesmenRecord();
|
if(newBill!=null) {
|
||||||
queryCreditSalesmenRecord.setBillCode(emisWaybill.getBillCode());
|
String newPaymentType = newBill.getPaymentType();
|
||||||
queryCreditSalesmenRecord.setChangeType("2");
|
if ("2".equals(newPaymentType)
|
||||||
List<EmisCreditSalesmenRecord> listCreditSalesmenRecord=emisCreditSalesmenRecordMapper.selectEmisCreditSalesmenRecordList(queryCreditSalesmenRecord);
|
|| "4".equals(newPaymentType)
|
||||||
if(!CollectionUtils.isEmpty(listCreditSalesmenRecord)){
|
|| "5".equals(newPaymentType)
|
||||||
for (EmisCreditSalesmenRecord item:listCreditSalesmenRecord) {
|
) {
|
||||||
// 恢复额度
|
EmisCreditCustomer queryCreditCustomer = new EmisCreditCustomer();
|
||||||
emisCreditSalesmenMapper.changeBalance(item.getAccCode(),BigDecimal.ZERO.subtract(item.getChangeMoney()));
|
queryCreditCustomer.setMonthlyPayCode(newBill.getCustNo());
|
||||||
// 删除记录
|
queryCreditCustomer.getParams().put("sendDate", newBill.getSendDate());
|
||||||
emisCreditSalesmenRecordMapper.deleteEmisCreditSalesmenRecordById(item.getId());
|
queryCreditCustomer.setTransType(newBill.getTransType());
|
||||||
|
List<EmisCreditCustomer> listCreditCustomer = emisCreditCustomerMapper.selectEmisCreditCustomerList(queryCreditCustomer);
|
||||||
|
|
||||||
|
if (!CollectionUtils.isEmpty(listCreditCustomer)) {
|
||||||
|
EmisCreditCustomer item0 = listCreditCustomer.get(0);
|
||||||
|
// 获取已使用金额
|
||||||
|
BigDecimal useMoney = emisCreditCustomerMapper.getUseMoney(item0);
|
||||||
|
|
||||||
|
EmisCreditCustomer upd = new EmisCreditCustomer();
|
||||||
|
upd.setId(item0.getId());
|
||||||
|
upd.setUseMoney(useMoney);
|
||||||
|
emisCreditCustomerMapper.updateEmisCreditCustomer(upd);
|
||||||
|
}
|
||||||
|
} else if ("1".equals(newPaymentType) || "3".equals(newPaymentType)) {
|
||||||
|
// 现金额度占用
|
||||||
|
EmisCreditSalesmen queryCreditSalesmen = new EmisCreditSalesmen();
|
||||||
|
queryCreditSalesmen.setSalesmen(newBill.getSalesmen());
|
||||||
|
queryCreditSalesmen.getParams().put("sendDate", newBill.getSendDate());
|
||||||
|
queryCreditSalesmen.setTransType(newBill.getTransType());
|
||||||
|
queryCreditSalesmen.setBlOpen("1");
|
||||||
|
List<EmisCreditSalesmen> listCreditSalesmen = emisCreditSalesmenMapper.selectEmisCreditSalesmenList(queryCreditSalesmen);
|
||||||
|
|
||||||
|
if (!CollectionUtils.isEmpty(listCreditSalesmen)) {
|
||||||
|
EmisCreditSalesmen item0 = listCreditSalesmen.get(0);
|
||||||
|
// 获取已使用金额
|
||||||
|
BigDecimal useMoney = emisCreditSalesmenMapper.getUseMoney(item0);
|
||||||
|
|
||||||
|
EmisCreditSalesmen upd = new EmisCreditSalesmen();
|
||||||
|
upd.setId(item0.getId());
|
||||||
|
upd.setUseMoney(useMoney);
|
||||||
|
emisCreditSalesmenMapper.updateEmisCreditSalesmen(upd);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1408,11 +1408,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
|
|||||||
confirmOrder(emisWaybillOld,emisWaybillSave);
|
confirmOrder(emisWaybillOld,emisWaybillSave);
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
|
|
||||||
// if(OrderStatus.INIT.statusCode.equals(emisWaybillOld.getOrderStatus())){
|
// if(OrderStatus.INIT.statusCode.equals(emisWaybillOld.getOrderStatus())){
|
||||||
// throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "未接单,不允许修改");
|
// throw new EmisBizError(EmisBizErrorType.BILL_LOCK, "未接单,不允许修改");
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// 检查是否已锁单
|
// 检查是否已锁单
|
||||||
checkDBBillIsLock(emisWaybillOld);
|
checkDBBillIsLock(emisWaybillOld);
|
||||||
|
|
||||||
@ -1424,16 +1422,14 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
|
|||||||
// 修改运单
|
// 修改运单
|
||||||
reUpdateWayBill(emisWaybillOld, emisWaybillSave);
|
reUpdateWayBill(emisWaybillOld, emisWaybillSave);
|
||||||
|
|
||||||
|
// 信用额度计算
|
||||||
|
adjustUseQuotaCredit(emisWaybillOld,emisWaybillSave);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下单接口Oms
|
* 下单接口Oms
|
||||||
* @param emisWaybillSave
|
* @param emisWaybillSave
|
||||||
@ -3150,6 +3146,16 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 运单立即重新出账
|
||||||
|
try {
|
||||||
|
// 出账
|
||||||
|
redoGenerateBill(emisWaybillSave.getBillCode());
|
||||||
|
// 重新计算提成
|
||||||
|
emisCommissionProfitService.reCalcProfitByBillCode(emisWaybillSave.getBillCode());
|
||||||
|
|
||||||
|
}catch (Exception ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user