Browse Source

1.资金各单加上中间表逻辑

heqinwei 7 years ago
parent
commit
35950d2c3a

+ 40 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/FundtransferServiceImpl.java

@@ -11,6 +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.BanksubledgerMapper;
 import com.usoftchina.saas.money.mapper.FundtransferMapper;
 import com.usoftchina.saas.money.mapper.FundtransferdetailMapper;
 import com.usoftchina.saas.money.po.*;
@@ -35,6 +36,8 @@ public class FundtransferServiceImpl implements FundtransferService {
     private FundtransferdetailMapper fundtransferdetailMapper;
     @Autowired
     private MaxnumberService maxnumberService;
+    @Autowired
+    private BanksubledgerMapper banksubledgerMapper;
 
     @Override
     public DocBaseDTO insert(Fundtran fundtran) {
@@ -84,6 +87,7 @@ public class FundtransferServiceImpl implements FundtransferService {
         fundtransfer.setFt_status(Status.AUDITED.getDisplay());
         fundtransfer.setFt_statuscode(Status.AUDITED.name());
         fundtransfer.setCompanyId(companyId);
+        this.changBankUntil(fundtran);
         if ( fundtransfer == null || "".equals(fundtransfer)){
             this.insert(fundtran);
         }else {
@@ -98,6 +102,10 @@ public class FundtransferServiceImpl implements FundtransferService {
         fundtransfer.setFt_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         fundtransfer.setFt_statuscode(Status.UNAUDITED.name());
         fundtransferMapper.updateByPrimaryKeySelective(fundtransfer);
+
+        //删除中间表
+        fundtransfer = fundtransferMapper.selectByPrimaryKey(id);
+        banksubledgerMapper.deleteByPrimaryKey(fundtransfer.getFt_code(), "其他收入单");
     }
 
 
@@ -130,6 +138,8 @@ public class FundtransferServiceImpl implements FundtransferService {
             fundtransfer.setId(Long.valueOf(docBaseDTO.getId()));
             fundtransfer.setFt_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             fundtransfer.setFt_statuscode(Status.AUDITED.name());
+            Fundtran fundtran = this.select(Math.toIntExact(fundtransfer.getId()));
+            this.changBankUntil(fundtran);
             fundtransferMapper.updateByPrimaryKeySelective(fundtransfer);
         }
     }
@@ -200,4 +210,34 @@ public class FundtransferServiceImpl implements FundtransferService {
         }
         return fundtransferList;
     }
+
+    //插入bank中间表
+    public void changBankUntil(Fundtran fundtran){
+        Banksubledger banksubledger = new Banksubledger();
+        Fundtransfer fundtransfer = fundtran.getMain();
+        List<Fundtransferdetail> fundtransferdetailsList = fundtran.getItems();
+        Iterator isList = fundtransferdetailsList.iterator();
+        while (isList.hasNext()) {
+            Fundtransferdetail fundtransferdetail = (Fundtransferdetail) isList.next();
+            banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
+            banksubledger.setBl_ym(fundtransferdetail.getFtd_ym());
+            banksubledger.setBl_bankid(fundtransferdetail.getFtd_bankid());
+            banksubledger.setBl_bankcode(fundtransferdetail.getFtd_bankcode());
+            banksubledger.setBl_bankname(fundtransferdetail.getFtd_bankname());
+            banksubledger.setBl_code(fundtransfer.getFt_code());
+            banksubledger.setBl_kind("资金转账");
+            banksubledger.setBl_date(fundtransfer.getFt_date());
+
+//            if (fundtransferdetail.getOs_vendid() == null || fundtransferdetail.getOs_vendid() != 0){
+//                banksubledger.setBl_asstype("供应商往来 ");
+//            }else {
+//                banksubledger.setBl_asstype(null);
+//            }
+            banksubledger.setBl_assid(0);
+            banksubledger.setBl_spending(fundtransferdetail.getFtd_nowbalance());
+            banksubledger.setBl_remark(fundtransferdetail.getFtd_remark());
+            banksubledger.setBl_orderamount(fundtransferdetail.getFtd_nowbalance() * -1);
+            banksubledgerMapper.insertSelective(banksubledger);
+        }
+    }
 }

+ 42 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthreceiptsServiceImpl.java

@@ -11,6 +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.BanksubledgerMapper;
 import com.usoftchina.saas.money.mapper.OthreceiptsMapper;
 import com.usoftchina.saas.money.mapper.OthreceiptsdetailMapper;
 import com.usoftchina.saas.money.po.*;
@@ -36,6 +37,8 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
     private OthreceiptsdetailMapper othreceiptsdetailMapper;
     @Autowired
     private MaxnumberService maxnumberService;
+    @Autowired
+    private BanksubledgerMapper banksubledgerMapper;
 
     @Override
     public DocBaseDTO insert(Othte othte) {
@@ -85,6 +88,7 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
         othreceipts.setOr_status(Status.AUDITED.getDisplay());
         othreceipts.setOr_statuscode(Status.AUDITED.name());
         othreceipts.setCompanyId(companyId);
+        this.changBankUntil(othte);
         if ( othreceipts == null || "".equals(othreceipts)){
             this.insert(othte);
         }else {
@@ -99,6 +103,10 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
         othreceipts.setOr_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         othreceipts.setOr_statuscode(Status.UNAUDITED.name());
         othreceiptsMapper.updateByPrimaryKeySelective(othreceipts);
+
+        //删除中间表
+        othreceipts = othreceiptsMapper.selectByPrimaryKey(id);
+        banksubledgerMapper.deleteByPrimaryKey(othreceipts.getOr_code(), "其他收入单");
     }
 
 
@@ -153,6 +161,8 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
             othreceipts.setId(Long.valueOf(docBaseDTO.getId()));
             othreceipts.setOr_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             othreceipts.setOr_statuscode(Status.AUDITED.name());
+            Othte othte = this.select(Math.toIntExact(othreceipts.getId()));
+            this.changBankUntil(othte);
             othreceiptsMapper.updateByPrimaryKeySelective(othreceipts);
         }
     }
@@ -200,4 +210,36 @@ public class OthreceiptsServiceImpl implements OthreceiptsService {
         }
         return othreceiptsList;
     }
+
+    //插入bank中间表
+    public void changBankUntil(Othte othte){
+        Banksubledger banksubledger = new Banksubledger();
+        Othreceipts othreceipts = othte.getMain();
+        List<Othreceiptsdetail> othreceiptsdetailList = othte.getItems();
+        Iterator isList = othreceiptsdetailList.iterator();
+        while (isList.hasNext()) {
+            Othreceiptsdetail othreceiptsdetail = (Othreceiptsdetail) isList.next();
+            banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
+            banksubledger.setBl_ym(othreceiptsdetail.getOrd_ym());
+            banksubledger.setBl_bankid(othreceipts.getOr_bankid());
+            banksubledger.setBl_bankcode(othreceipts.getOr_bankcode());
+            banksubledger.setBl_bankname(othreceipts.getOr_bankname());
+            banksubledger.setBl_code(othreceipts.getOr_code());
+            banksubledger.setBl_kind("其他收入单");
+            banksubledger.setBl_date(othreceipts.getOr_date());
+
+            if (othreceipts.getOr_custid() == null || othreceipts.getOr_custid() != 0){
+                banksubledger.setBl_asstype("客户往来");
+            }else {
+                banksubledger.setBl_asstype(null);
+            }
+            banksubledger.setBl_assid(othreceipts.getOr_custid());
+            banksubledger.setBl_asscode(othreceipts.getOr_custcode());
+            banksubledger.setBl_assname(othreceipts.getOr_custname());
+            banksubledger.setBl_income(othreceiptsdetail.getOrd_nowbalance());
+            banksubledger.setBl_remark(othreceiptsdetail.getOrd_remark());
+            banksubledger.setBl_orderamount(othreceiptsdetail.getOrd_nowbalance());
+            banksubledgerMapper.insertSelective(banksubledger);
+        }
+    }
 }

+ 42 - 4
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/OthspendingsServiceImpl.java

@@ -11,10 +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.OthreceiptsMapper;
-import com.usoftchina.saas.money.mapper.OthreceiptsdetailMapper;
-import com.usoftchina.saas.money.mapper.OthspendingsMapper;
-import com.usoftchina.saas.money.mapper.OthspendingsdetailMapper;
+import com.usoftchina.saas.money.mapper.*;
 import com.usoftchina.saas.money.po.*;
 import com.usoftchina.saas.money.service.OthspendingsService;
 import com.usoftchina.saas.page.PageRequest;
@@ -37,6 +34,8 @@ public class OthspendingsServiceImpl implements OthspendingsService {
     private OthspendingsdetailMapper othspendingsdetailMapper;
     @Autowired
     private MaxnumberService maxnumberService;
+    @Autowired
+    private BanksubledgerMapper banksubledgerMapper;
 
     @Override
     public DocBaseDTO insert(Othsp othsp) {
@@ -117,6 +116,7 @@ public class OthspendingsServiceImpl implements OthspendingsService {
         othspendings.setOs_status(Status.AUDITED.getDisplay());
         othspendings.setOs_statuscode(Status.AUDITED.name());
         othspendings.setCompanyId(companyId);
+        this.changBankUntil(othsp);
         if ( othspendings == null || "".equals(othspendings)){
             this.insert(othsp);
         }else {
@@ -131,6 +131,10 @@ public class OthspendingsServiceImpl implements OthspendingsService {
         othspendings.setOs_status(com.usoftchina.saas.commons.po.Status.UNAUDITED.getDisplay());
         othspendings.setOs_statuscode(Status.UNAUDITED.name());
         othspendingsMapper.updateByPrimaryKeySelective(othspendings);
+
+        //删除中间表
+        othspendings = othspendingsMapper.selectByPrimaryKey(id);
+        banksubledgerMapper.deleteByPrimaryKey(othspendings.getOs_code(), "其他收入单");
     }
 
     @Override
@@ -151,6 +155,8 @@ public class OthspendingsServiceImpl implements OthspendingsService {
             othspendings.setId(Long.valueOf(docBaseDTO.getId()));
             othspendings.setOs_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             othspendings.setOs_statuscode(Status.AUDITED.name());
+            Othsp othsp = this.select(Math.toIntExact(othspendings.getId()));
+            this.changBankUntil(othsp);
             othspendingsMapper.updateByPrimaryKeySelective(othspendings);
         }
     }
@@ -198,4 +204,36 @@ public class OthspendingsServiceImpl implements OthspendingsService {
         }
         return othspendingsList;
     }
+
+    //插入bank中间表
+    public void changBankUntil(Othsp othsp){
+        Banksubledger banksubledger = new Banksubledger();
+        Othspendings othspendings = othsp.getMain();
+        List<Othspendingsdetail> othspendingsdetailList = othsp.getItems();
+        Iterator isList = othspendingsdetailList.iterator();
+        while (isList.hasNext()) {
+            Othspendingsdetail othspendingsdetail = (Othspendingsdetail) isList.next();
+            banksubledger.setCompanyId(BaseContextHolder.getCompanyId());
+            banksubledger.setBl_ym(othspendingsdetail.getOsd_ym());
+            banksubledger.setBl_bankid(othspendings.getOs_bankid());
+            banksubledger.setBl_bankcode(othspendings.getOs_bankcode());
+            banksubledger.setBl_bankname(othspendings.getOs_bankname());
+            banksubledger.setBl_code(othspendings.getOs_code());
+            banksubledger.setBl_kind("其他支出单");
+            banksubledger.setBl_date(othspendings.getOs_date());
+
+            if (othspendings.getOs_vendid() == null || othspendings.getOs_vendid() != 0){
+                banksubledger.setBl_asstype("供应商往来 ");
+            }else {
+                banksubledger.setBl_asstype(null);
+            }
+            banksubledger.setBl_assid(othspendings.getOs_vendid());
+            banksubledger.setBl_asscode(othspendings.getOs_vendcode());
+            banksubledger.setBl_assname(othspendings.getOs_vendname());
+            banksubledger.setBl_income(othspendingsdetail.getOsd_nowbalance());
+            banksubledger.setBl_remark(othspendingsdetail.getOsd_remark());
+            banksubledger.setBl_orderamount(othspendingsdetail.getOsd_nowbalance() * -1);
+            banksubledgerMapper.insertSelective(banksubledger);
+        }
+    }
 }

+ 4 - 3
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/PaybalanceServiceImpl.java

@@ -106,7 +106,6 @@ public class PaybalanceServiceImpl implements PaybalanceService {
         subledgerMapper.insertSelective(subledger);
         this.changBankUntil(pay);
         System.out.println("新增");
-        this.changBankUntil(pay);
         if ( paybalance == null || "".equals(paybalance)){
             this.insert(pay);
         }else {
@@ -185,6 +184,8 @@ public class PaybalanceServiceImpl implements PaybalanceService {
             paybalance.setId(Long.valueOf(docBaseDTO.getId()));
             paybalance.setPb_status(com.usoftchina.saas.commons.po.Status.AUDITED.getDisplay());
             paybalance.setPb_statuscode(Status.AUDITED.name());
+            Pay pay = this.select(Math.toIntExact(paybalance.getId()));
+            this.changBankUntil(pay);
             paybalanceMapper.updateByPrimaryKeySelective(paybalance);
         }
     }
@@ -293,10 +294,10 @@ public class PaybalanceServiceImpl implements PaybalanceService {
             banksubledger.setBl_date(paybalance.getPb_date());
 
             if (paybalance.getPb_vendid() == null || paybalance.getPb_vendid() != 0){
-                banksubledger.setBl_asscode("供应商往来");
+                banksubledger.setBl_asstype("供应商往来");
             }
             banksubledger.setBl_assid(paybalance.getPb_vendid());
-            banksubledger.setBl_code(paybalance.getPb_code());
+            banksubledger.setBl_asscode(paybalance.getPb_vendcode());
             banksubledger.setBl_assname(paybalance.getPb_vendname());
             banksubledger.setBl_spending(paybalancedet.getPd_amount());
             banksubledger.setBl_manname(paybalance.getPb_manname());

+ 86 - 3
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java

@@ -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);
+
+        }
+    }
 }