diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java index 3b4188e4..d8afcd69 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotHeadController.java @@ -311,41 +311,50 @@ public class DepotHeadController { String subType = ""; String typeBack = ""; String subTypeBack = ""; + String billType = ""; if (("供应商").equals(supplierType)) { type = "入库"; subType = "采购"; typeBack = "出库"; subTypeBack = "采购退货"; + billType = "付款"; } else if (("客户").equals(supplierType)) { type = "出库"; subType = "销售"; typeBack = "入库"; subTypeBack = "销售退货"; + billType = "收款"; } String [] organArray = depotHeadService.getOrganArray(subType, ""); beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME); endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME); List list = depotHeadService.getStatementAccount(beginTime, endTime, organId, organArray, - supplierType, type, subType,typeBack, subTypeBack, (currentPage-1)*pageSize, pageSize); + supplierType, type, subType,typeBack, subTypeBack, billType, (currentPage-1)*pageSize, pageSize); int total = depotHeadService.getStatementAccountCount(beginTime, endTime, organId, organArray, - supplierType, type, subType,typeBack, subTypeBack); + supplierType, type, subType,typeBack, subTypeBack, billType); for(DepotHeadVo4StatementAccount item: list) { + //期初 = 起始期初金额+上期欠款金额-上期退货的欠款金额-上期收付款 BigDecimal preNeed = item.getBeginNeed().add(item.getPreDebtMoney()).subtract(item.getPreReturnDebtMoney()).subtract(item.getPreBackMoney()); item.setPreNeed(preNeed); + //实际欠款 = 本期欠款-本期退货的欠款金额 BigDecimal realDebtMoney = item.getDebtMoney().subtract(item.getReturnDebtMoney()); item.setDebtMoney(realDebtMoney); + //期末 = 期初+实际欠款-本期收款 BigDecimal allNeedGet = preNeed.add(realDebtMoney).subtract(item.getBackMoney()); item.setAllNeed(allNeedGet); } map.put("rows", list); map.put("total", total); - List totalPayList = depotHeadService.getStatementAccountTotalPay(beginTime, endTime, organId, organArray, supplierType, type, subType, typeBack, subTypeBack); + List totalPayList = depotHeadService.getStatementAccountTotalPay(beginTime, endTime, organId, organArray, + supplierType, type, subType, typeBack, subTypeBack, billType); if(totalPayList.size()>0) { DepotHeadVo4StatementAccount totalPayItem = totalPayList.get(0); BigDecimal firstMoney = BigDecimal.ZERO; BigDecimal lastMoney = BigDecimal.ZERO; if(totalPayItem!=null) { + //期初 = 起始期初金额+上期欠款金额-上期退货的欠款金额-上期收付款 firstMoney = totalPayItem.getBeginNeed().add(totalPayItem.getPreDebtMoney()).subtract(totalPayItem.getPreReturnDebtMoney()).subtract(totalPayItem.getPreBackMoney()); + //期末 = 期初+本期欠款-本期退货的欠款金额-本期收款 lastMoney = firstMoney.add(totalPayItem.getDebtMoney()).subtract(totalPayItem.getReturnDebtMoney()).subtract(totalPayItem.getBackMoney()); } map.put("firstMoney", firstMoney); //期初 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java index 38d40cb0..a6b19149 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java @@ -151,6 +151,7 @@ public interface DepotHeadMapperEx { @Param("subType") String subType, @Param("typeBack") String typeBack, @Param("subTypeBack") String subTypeBack, + @Param("billType") String billType, @Param("offset") Integer offset, @Param("rows") Integer rows); @@ -163,7 +164,8 @@ public interface DepotHeadMapperEx { @Param("type") String type, @Param("subType") String subType, @Param("typeBack") String typeBack, - @Param("subTypeBack") String subTypeBack); + @Param("subTypeBack") String subTypeBack, + @Param("billType") String billType); List getStatementAccountTotalPay( @Param("beginTime") String beginTime, @@ -174,7 +176,8 @@ public interface DepotHeadMapperEx { @Param("type") String type, @Param("subType") String subType, @Param("typeBack") String typeBack, - @Param("subTypeBack") String subTypeBack); + @Param("subTypeBack") String subTypeBack, + @Param("billType") String billType); BigDecimal findAllMoney( @Param("supplierId") Integer supplierId, diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index 77296dd7..319056bf 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -675,10 +675,10 @@ public class DepotHeadService { } public List getStatementAccount(String beginTime, String endTime, Integer organId, String [] organArray, - String supplierType, String type, String subType, String typeBack, String subTypeBack, Integer offset, Integer rows) { + String supplierType, String type, String subType, String typeBack, String subTypeBack, String billType, Integer offset, Integer rows) { List list = null; try{ - list = depotHeadMapperEx.getStatementAccount(beginTime, endTime, organId, organArray, supplierType, type, subType,typeBack, subTypeBack, offset, rows); + list = depotHeadMapperEx.getStatementAccount(beginTime, endTime, organId, organArray, supplierType, type, subType,typeBack, subTypeBack, billType, offset, rows); } catch(Exception e){ JshException.readFail(logger, e); } @@ -686,10 +686,10 @@ public class DepotHeadService { } public int getStatementAccountCount(String beginTime, String endTime, Integer organId, - String [] organArray, String supplierType, String type, String subType, String typeBack, String subTypeBack) { + String [] organArray, String supplierType, String type, String subType, String typeBack, String subTypeBack, String billType) { int result = 0; try{ - result = depotHeadMapperEx.getStatementAccountCount(beginTime, endTime, organId, organArray, supplierType, type, subType,typeBack, subTypeBack); + result = depotHeadMapperEx.getStatementAccountCount(beginTime, endTime, organId, organArray, supplierType, type, subType,typeBack, subTypeBack, billType); } catch(Exception e){ JshException.readFail(logger, e); } @@ -698,10 +698,10 @@ public class DepotHeadService { public List getStatementAccountTotalPay(String beginTime, String endTime, Integer organId, String [] organArray, String supplierType, - String type, String subType, String typeBack, String subTypeBack) { + String type, String subType, String typeBack, String subTypeBack, String billType) { List list = null; try{ - list = depotHeadMapperEx.getStatementAccountTotalPay(beginTime, endTime, organId, organArray, supplierType, type, subType,typeBack, subTypeBack); + list = depotHeadMapperEx.getStatementAccountTotalPay(beginTime, endTime, organId, organArray, supplierType, type, subType,typeBack, subTypeBack, billType); } catch(Exception e){ JshException.readFail(logger, e); } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/supplier/SupplierService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/supplier/SupplierService.java index 0f7c7d1c..ede6a0a0 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/supplier/SupplierService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/supplier/SupplierService.java @@ -411,9 +411,9 @@ public class SupplierService { } else if("客户".equals(supplier.getType())) { needDebt = supplier.getBeginNeedGet(); } - BigDecimal finishDebt = accountItemMapperEx.getFinishDebtByOrganId(organId); + BigDecimal finishDebt = accountItemMapperEx.getFinishDebtByOrganId(organId).abs(); BigDecimal eachAmount = BigDecimal.ZERO; - if(needDebt != null && finishDebt != null) { + if(needDebt != null) { eachAmount = needDebt.subtract(finishDebt); } //应收欠款 diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml index a9210962..3ab93014 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml @@ -654,9 +654,9 @@ and dh.oper_time>#{beginTime} and dh.oper_time <= #{endTime} and ifnull(dh.delete_flag,'0') !='1') returnDebtMoney, (select abs(ifnull(sum(ai.each_amount),0)) from jsh_account_item ai - left join jsh_depot_head dh on ai.bill_id=dh.id and ifnull(dh.delete_flag,'0') !='1' - where dh.organ_id=s.id - and dh.oper_time>#{beginTime} and dh.oper_time <= #{endTime} + left join jsh_account_head ah on ai.header_id=ah.id and ifnull(ah.delete_flag,'0') !='1' + where ah.organ_id=s.id and ah.type=#{billType} + and ah.bill_time>#{beginTime} and ah.bill_time <= #{endTime} and ifnull(ai.delete_flag,'0') !='1') backMoney from jsh_supplier s where s.enabled=1 @@ -717,9 +717,9 @@ and dh.oper_time>#{beginTime} and dh.oper_time <= #{endTime} and ifnull(dh.delete_flag,'0') !='1') returnDebtMoney, (select abs(ifnull(sum(ai.each_amount),0)) from jsh_account_item ai - left join jsh_depot_head dh on ai.bill_id=dh.id and ifnull(dh.delete_flag,'0') !='1' - where dh.organ_id=s.id - and dh.oper_time>#{beginTime} and dh.oper_time <= #{endTime} + left join jsh_account_head ah on ai.header_id=ah.id and ifnull(ah.delete_flag,'0') !='1' + where ah.organ_id=s.id and ah.type=#{billType} + and ah.bill_time>#{beginTime} and ah.bill_time <= #{endTime} and ifnull(ai.delete_flag,'0') !='1') backMoney from jsh_supplier s where s.enabled=1 @@ -777,9 +777,9 @@ and dh.oper_time>#{beginTime} and dh.oper_time <= #{endTime} and ifnull(dh.delete_flag,'0') !='1') returnDebtMoney, (select abs(ifnull(sum(ai.each_amount),0)) from jsh_account_item ai - left join jsh_depot_head dh on ai.bill_id=dh.id and ifnull(dh.delete_flag,'0') !='1' - where dh.organ_id=s.id - and dh.oper_time>#{beginTime} and dh.oper_time <= #{endTime} + left join jsh_account_head ah on ai.header_id=ah.id and ifnull(ah.delete_flag,'0') !='1' + where ah.organ_id=s.id and ah.type=#{billType} + and ah.bill_time>#{beginTime} and ah.bill_time <= #{endTime} and ifnull(ai.delete_flag,'0') !='1') backMoney from jsh_supplier s where s.enabled=1