|
|
@@ -11,9 +11,7 @@ import com.usoftchina.saas.commons.po.BillCodeSeq;
|
|
|
import com.usoftchina.saas.commons.po.Status;
|
|
|
import com.usoftchina.saas.context.BaseContextHolder;
|
|
|
import com.usoftchina.saas.exception.BizException;
|
|
|
-import com.usoftchina.saas.money.mapper.RecbalanceMapper;
|
|
|
-import com.usoftchina.saas.money.mapper.RecbalancedetMapper;
|
|
|
-import com.usoftchina.saas.money.mapper.RecbalancedetailMapper;
|
|
|
+import com.usoftchina.saas.money.mapper.*;
|
|
|
import com.usoftchina.saas.money.po.*;
|
|
|
import com.usoftchina.saas.money.service.RecbalanceService;
|
|
|
import com.usoftchina.saas.page.PageRequest;
|
|
|
@@ -38,6 +36,10 @@ public class RecbalanceServiceImpl implements RecbalanceService {
|
|
|
RecbalancedetailMapper recbalancedetailMapper;
|
|
|
@Autowired
|
|
|
private MaxnumberService maxnumberService;
|
|
|
+ @Autowired
|
|
|
+ private BanksubledgerMapper banksubledgerMapper;
|
|
|
+ @Autowired
|
|
|
+ private SubledgerMapper subledgerMapper;
|
|
|
|
|
|
@Override
|
|
|
public DocBaseDTO insert(Rec rec) {
|
|
|
@@ -128,6 +130,9 @@ public class RecbalanceServiceImpl implements RecbalanceService {
|
|
|
recbalance.setRb_status(Status.AUDITED.getDisplay());
|
|
|
recbalance.setRb_statuscode(Status.AUDITED.name());
|
|
|
recbalance.setCompanyId(companyId);
|
|
|
+ Subledger subledger = this.changSubledgerUntil(recbalance);
|
|
|
+ subledgerMapper.insertSelective(subledger);
|
|
|
+ this.changBankUntil(rec);
|
|
|
if ( recbalance == null || "".equals(recbalance)){
|
|
|
this.insert(rec);
|
|
|
}else {
|
|
|
@@ -142,6 +147,11 @@ public class RecbalanceServiceImpl implements RecbalanceService {
|
|
|
recbalance.setRb_status(Status.UNAUDITED.getDisplay());
|
|
|
recbalance.setRb_statuscode(Status.UNAUDITED.name());
|
|
|
recbalanceMapper.updateByPrimaryKeySelective(recbalance);
|
|
|
+
|
|
|
+ //删除中间表
|
|
|
+ recbalance = recbalanceMapper.selectByPrimaryKey(id);
|
|
|
+ subledgerMapper.deleteByPrimaryKey(recbalance.getRb_code(), recbalance.getRb_kind());
|
|
|
+ banksubledgerMapper.deleteByPrimaryKey(recbalance.getRb_code(), recbalance.getRb_kind());
|
|
|
}
|
|
|
|
|
|
public PageInfo<Recbalance> selectList(PageRequest page, ListReqDTO reqDTO) {
|
|
|
@@ -176,6 +186,8 @@ public class RecbalanceServiceImpl implements RecbalanceService {
|
|
|
recbalance.setId(Long.valueOf(docBaseDTO.getId()));
|
|
|
recbalance.setRb_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
|
|
|
recbalance.setRb_statuscode(Status.AUDITED.name());
|
|
|
+ Rec rec = this.select(Math.toIntExact(recbalance.getId()));
|
|
|
+ this.changBankUntil(rec);
|
|
|
recbalanceMapper.updateByPrimaryKeySelective(recbalance);
|
|
|
}
|
|
|
}
|
|
|
@@ -223,4 +235,75 @@ public class RecbalanceServiceImpl implements RecbalanceService {
|
|
|
}
|
|
|
return recbalancesList;
|
|
|
}
|
|
|
+
|
|
|
+ //插入中间表
|
|
|
+ public Subledger changSubledgerUntil(Recbalance recbalance){
|
|
|
+ Subledger subledger = new Subledger();
|
|
|
+ subledger.setCompanyId(BaseContextHolder.getCompanyId());
|
|
|
+ subledger.setSl_code(recbalance.getRb_code());
|
|
|
+ subledger.setSl_kind(recbalance.getRb_kind());
|
|
|
+ subledger.setSl_custid(recbalance.getRb_custid());
|
|
|
+ subledger.setSl_vendid(0);
|
|
|
+ subledger.setSl_date(recbalance.getRb_date());
|
|
|
+ if (recbalance.getRb_rdamount() == null){
|
|
|
+ subledger.setSl_amount((double) 0);
|
|
|
+ }else {
|
|
|
+ subledger.setSl_amount(recbalance.getRb_rdamount() * -1);
|
|
|
+ }
|
|
|
+ subledger.setSl_orderamount(recbalance.getRb_rdamount());
|
|
|
+
|
|
|
+ Double yamount = recbalance.getRb_preamount();
|
|
|
+ if (yamount == null){
|
|
|
+ yamount = Double.valueOf(0);
|
|
|
+ }
|
|
|
+ if (yamount > 0 || yamount < 0){
|
|
|
+ subledger.setSl_yamount(yamount);
|
|
|
+ }else {
|
|
|
+ subledger.setSl_yamount((double) 0);
|
|
|
+ }
|
|
|
+ if (subledger.getSl_orderamount() == null){
|
|
|
+ subledger.setSl_orderamount((double) 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (subledger.getSl_discount() == null){
|
|
|
+ subledger.setSl_discount((double) 0);
|
|
|
+ }
|
|
|
+ subledger.setSl_namount(subledger.getSl_orderamount() + subledger.getSl_discount() - subledger.getSl_yamount());
|
|
|
+ subledger.setSl_remark(subledger.getSl_remark());
|
|
|
+ subledger.setSl_preamount(subledger.getSl_preamount());
|
|
|
+
|
|
|
+ return subledger;
|
|
|
+ }
|
|
|
+
|
|
|
+ //插入bank中间表
|
|
|
+ public void changBankUntil(Rec rec){
|
|
|
+ Banksubledger banksubledger = new Banksubledger();
|
|
|
+ Recbalance recbalance = rec.getMain();
|
|
|
+ List<Recbalancedet> recbalancedetList = rec.getItems1();
|
|
|
+ Iterator isList = recbalancedetList.iterator();
|
|
|
+ while (isList.hasNext()) {
|
|
|
+ Recbalancedet recbalancedet = (Recbalancedet) isList.next();
|
|
|
+ banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
|
|
|
+ banksubledger.setBl_ym(recbalancedet.getRd_ym());
|
|
|
+ banksubledger.setBl_bankid(recbalancedet.getRd_bankid());
|
|
|
+ banksubledger.setBl_bankcode(recbalancedet.getRd_bankcode());
|
|
|
+ banksubledger.setBl_bankname(recbalancedet.getRd_bankname());
|
|
|
+ banksubledger.setBl_code(recbalance.getRb_code());
|
|
|
+ banksubledger.setBl_kind(recbalance.getRb_kind());
|
|
|
+ banksubledger.setBl_date(recbalance.getRb_date());
|
|
|
+
|
|
|
+ if (recbalance.getRb_custid() == null || recbalance.getRb_custid() != 0){
|
|
|
+ banksubledger.setBl_asstype("供应商往来");
|
|
|
+ }
|
|
|
+ banksubledger.setBl_assid(recbalance.getRb_custid());
|
|
|
+ banksubledger.setBl_asscode(recbalance.getRb_custcode());
|
|
|
+ banksubledger.setBl_assname(recbalance.getRb_custname());
|
|
|
+ banksubledger.setBl_spending(recbalancedet.getRd_amount());
|
|
|
+ banksubledger.setBl_manname(recbalance.getRb_manname());
|
|
|
+ banksubledger.setBl_remark(recbalancedet.getRd_remark());
|
|
|
+ banksubledger.setBl_orderamount(recbalancedet.getRd_amount());
|
|
|
+ banksubledgerMapper.insertSelective(banksubledger);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|