|
|
@@ -273,25 +273,35 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
|
|
|
updateRay.setRb_auditman(BaseContextHolder.getUserName());
|
|
|
recbalanceMapper.updateByPrimaryKeySelective(updateRay);
|
|
|
/**
|
|
|
- * 更新客户资料
|
|
|
- * cu_preamount=nvl(cu_preamount,0)+rb_preamount,
|
|
|
- * cu_recamount=nvl(cu_recamount,0)-rb_rbdamount,
|
|
|
- * cu_leftamount=cu_beginaramount-cu_beginprerecamount+cu_recamount-cu_preamount;
|
|
|
+ * 更新客户应收
|
|
|
*/
|
|
|
- Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(recbalance.getRb_custid());
|
|
|
- Double preamount = customerData.getCu_preamount()==null?new Double(0):customerData.getCu_preamount();
|
|
|
- Double beginapamount = customerData.getCu_beginaramount()==null?new Double(0):customerData.getCu_beginaramount();
|
|
|
- Double beginprepayamount= customerData.getCu_beginprerecamount()==null?new Double(0):customerData.getCu_beginprerecamount();
|
|
|
- Double recamount = customerData.getCu_recamount()==null?new Double(0):customerData.getCu_recamount();
|
|
|
-
|
|
|
- Customer customer = new Customer();
|
|
|
+ String con="ca_custid="+recbalance.getRb_custid()+" and ca_currency='"+recbalance.getRb_currency()+"'";
|
|
|
+ CustAramount custar=recbalanceMapper.selectCustArByCondition(con,companyId);
|
|
|
Double paybalancePreamount = recbalance.getRb_preamount();
|
|
|
- customer.setId(Long.valueOf(String.valueOf(recbalance.getRb_custid())));
|
|
|
- customer.setId(Long.valueOf(String.valueOf(recbalance.getRb_custid())));
|
|
|
- customer.setCu_preamount(preamount+paybalancePreamount);
|
|
|
- customer.setCu_recamount(recamount-amountTotal2);
|
|
|
- customer.setCu_leftamount(beginapamount-beginprepayamount+recamount-amountTotal2-preamount-paybalancePreamount);
|
|
|
- recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
|
|
|
+ if (custar == null){
|
|
|
+ custar=new CustAramount();
|
|
|
+ custar.setCa_custid(recbalance.getRb_custid());
|
|
|
+ custar.setCa_custcode(recbalance.getRb_custcode());
|
|
|
+ custar.setCa_custname(recbalance.getRb_custname());
|
|
|
+ custar.setCa_currency(recbalance.getRb_currency());
|
|
|
+ custar.setCa_begindate(null);
|
|
|
+ custar.setCa_beginprerecamount(new Double(0));
|
|
|
+ custar.setCa_beginaramount(new Double(0));
|
|
|
+ custar.setCa_preamount(paybalancePreamount);
|
|
|
+ custar.setCa_recamount(new Double(0));
|
|
|
+ custar.setCa_leftamount(new Double(0)-paybalancePreamount);
|
|
|
+ custar.setCompanyId(companyId);
|
|
|
+ recbalanceMapper.insertCustAramount(custar);
|
|
|
+ }else {
|
|
|
+ Double capreamount = custar.getCa_preamount()==null?new Double(0):custar.getCa_preamount();
|
|
|
+ Double carecamount = custar.getCa_recamount()==null?new Double(0):custar.getCa_recamount();
|
|
|
+ Double caleftamount = custar.getCa_leftamount()==null?new Double(0):custar.getCa_leftamount();
|
|
|
+ custar.setCa_preamount(capreamount+paybalancePreamount);
|
|
|
+ custar.setCa_recamount(carecamount-amountTotal2);
|
|
|
+ custar.setCa_leftamount(caleftamount-amountTotal2-paybalancePreamount);
|
|
|
+ recbalanceMapper.updateCustAramountByPrimaryKeySelective(custar);
|
|
|
+ }
|
|
|
+ recbalanceMapper.updateCustleftamountByPrimaryKey(recbalance.getRb_custid());
|
|
|
|
|
|
//更新本次核销金额
|
|
|
for (Recbalancedetail detail: recbalancedetail) {
|
|
|
@@ -308,7 +318,6 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
|
|
|
subledger1.setSl_namount(namount-nowBalance);//未核销
|
|
|
subledgerMapper.updateByPrimaryKeySelective(subledger1);
|
|
|
}
|
|
|
-
|
|
|
//计算期间金额
|
|
|
Statsinfo statsinfo = new Statsinfo();
|
|
|
List<Integer> ymList = recbalancedetMapper.selectYm(Math.toIntExact(id));
|
|
|
@@ -326,9 +335,6 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
|
|
|
this.updateProdInoutStatus(id);
|
|
|
|
|
|
DocBaseDTO baseDTO = getBaseDTOById(id);
|
|
|
-// commonService.commonAudit(BillCodeSeq.RECBALANCE.getCaller(),
|
|
|
-// "rb_id="+baseDTO.getId(),"rb_status","rb_statuscode",
|
|
|
-// "rb_auditdate","rb_auditman");
|
|
|
//日志记录
|
|
|
messageLogService.audit(baseDTO);
|
|
|
return baseDTO;
|
|
|
@@ -371,27 +377,40 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
|
|
|
|
|
|
@Override
|
|
|
public void unAudit(Long id) {
|
|
|
- //更新供应商资料
|
|
|
- /**
|
|
|
- * ve_preamount=nvl(ve_preamount,0)-pb_preamount,
|
|
|
- * ve_payamount=nvl(ve_payamount,0)+pb_pbdamount,
|
|
|
- * ve_leftamount=ve_beginapamount-ve_beginprepayamount+ve_payamount-ve_preamount;
|
|
|
+ Long companyId = BaseContextHolder.getCompanyId();
|
|
|
+ /**客户应收
|
|
|
*/
|
|
|
Recbalance rec = recbalanceMapper.selectByPrimaryKey(Math.toIntExact(id));
|
|
|
Double pay_preamount = rec.getRb_preamount()==null?new Double(0):rec.getRb_preamount();
|
|
|
Double pay_pbdamount = rec.getRb_rbdamount()==null?new Double(0):rec.getRb_rbdamount();
|
|
|
- Customer customerData = recbalanceMapper.selectCustomerByPrimaryKey(rec.getRb_custid());
|
|
|
- Double preamount = customerData.getCu_preamount()==null?(new Double(0)):customerData.getCu_preamount();
|
|
|
- Double beginapamount = customerData.getCu_beginaramount()==null?new Double(0):customerData.getCu_beginaramount();
|
|
|
- Double beginprepayamount= customerData.getCu_beginprerecamount()==null?new Double(0):customerData.getCu_beginprerecamount();
|
|
|
- Double recamount = customerData.getCu_recamount()==null?new Double(0):customerData.getCu_recamount();
|
|
|
- Customer customer = new Customer();
|
|
|
- customer.setId(Long.valueOf(String.valueOf(rec.getRb_custid())));
|
|
|
- customer.setCu_preamount(preamount-pay_preamount);
|
|
|
- customer.setCu_recamount(recamount+pay_pbdamount);
|
|
|
- customer.setCu_leftamount(beginapamount-beginprepayamount+recamount+pay_pbdamount-preamount+pay_preamount);
|
|
|
- recbalanceMapper.updateCustomerByPrimaryKeySelective(customer);
|
|
|
|
|
|
+ String con="ca_custid="+rec.getRb_custid()+" and ca_currency='"+rec.getRb_currency()+"'";
|
|
|
+ CustAramount custar=recbalanceMapper.selectCustArByCondition(con,companyId);
|
|
|
+ Double paybalancePreamount = rec.getRb_preamount();
|
|
|
+ if (custar == null){
|
|
|
+ custar=new CustAramount();
|
|
|
+ custar.setCa_custid(rec.getRb_custid());
|
|
|
+ custar.setCa_custcode(rec.getRb_custcode());
|
|
|
+ custar.setCa_custname(rec.getRb_custname());
|
|
|
+ custar.setCa_currency(rec.getRb_currency());
|
|
|
+ custar.setCa_begindate(null);
|
|
|
+ custar.setCa_beginprerecamount(new Double(0));
|
|
|
+ custar.setCa_beginaramount(new Double(0));
|
|
|
+ custar.setCa_preamount(new Double(0)-pay_preamount);
|
|
|
+ custar.setCa_recamount(pay_pbdamount);
|
|
|
+ custar.setCa_leftamount(new Double(0)- pay_pbdamount + pay_preamount);
|
|
|
+ custar.setCompanyId(companyId);
|
|
|
+ recbalanceMapper.insertCustAramount(custar);
|
|
|
+ }else {
|
|
|
+ Double capreamount = custar.getCa_preamount()==null?new Double(0):custar.getCa_preamount();
|
|
|
+ Double carecamount = custar.getCa_recamount()==null?new Double(0):custar.getCa_recamount();
|
|
|
+ Double caleftamount = custar.getCa_leftamount()==null?new Double(0):custar.getCa_leftamount();
|
|
|
+ custar.setCa_preamount(capreamount-pay_preamount);
|
|
|
+ custar.setCa_recamount(carecamount+pay_pbdamount);
|
|
|
+ custar.setCa_leftamount(caleftamount+pay_pbdamount+pay_preamount);
|
|
|
+ recbalanceMapper.updateCustAramountByPrimaryKeySelective(custar);
|
|
|
+ }
|
|
|
+ recbalanceMapper.updateCustleftamountByPrimaryKey(rec.getRb_custid());
|
|
|
//更新账户资料金额
|
|
|
List<Recbalancedet> recbalancedet = recbalancedetMapper.selectByPrimaryKey(Math.toIntExact(id));
|
|
|
for (Recbalancedet det:recbalancedet) {
|