From da2a2accf6a2b3c98524c8266030004a3b14a171 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Fri, 12 Jul 2024 10:48:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E5=B0=8F=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ca/bm/entity/SupplierInfoBean.java | 4 +- .../SupplierReconciliationController.java | 75 ++++++++++++++++++- .../stas/dao/SupplierReconciliationDao.java | 4 + .../ca/stas/entity/PayablePartBean.java | 5 ++ .../ca/SupplierReconciliationMapper.xml | 65 +++++++++++++--- .../static/js/work/supplierReconciliation.js | 11 +++ .../pages/finance/supplierReconciliation.html | 2 +- 7 files changed, 148 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/bonus/boot/manager/ca/bm/entity/SupplierInfoBean.java b/src/main/java/com/bonus/boot/manager/ca/bm/entity/SupplierInfoBean.java index f19eb6f..69c1e70 100644 --- a/src/main/java/com/bonus/boot/manager/ca/bm/entity/SupplierInfoBean.java +++ b/src/main/java/com/bonus/boot/manager/ca/bm/entity/SupplierInfoBean.java @@ -10,8 +10,8 @@ public class SupplierInfoBean { String address;//联系地址 String telphone;//联系电话 String contacts;//联系人 - float openDept;//期初欠款 - float openNotInv;//期初未开票 + Double openDept;//期初欠款 + Double openNotInv;//期初未开票 String czy;//操作人 String czyName;//操作人名称 String czsj;//操作时间 diff --git a/src/main/java/com/bonus/boot/manager/ca/stas/controller/SupplierReconciliationController.java b/src/main/java/com/bonus/boot/manager/ca/stas/controller/SupplierReconciliationController.java index 5dd60a7..f1335af 100644 --- a/src/main/java/com/bonus/boot/manager/ca/stas/controller/SupplierReconciliationController.java +++ b/src/main/java/com/bonus/boot/manager/ca/stas/controller/SupplierReconciliationController.java @@ -7,6 +7,7 @@ import com.bonus.boot.manager.ca.stas.service.SupplierReconciliationService; import com.bonus.boot.manager.manager.table.PageTableRequest; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -14,8 +15,8 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Api(tags = "供应商对账") @@ -89,8 +90,16 @@ public class SupplierReconciliationController { String sqjz=request.getParams().get("sqjz").toString(); List beanList = service.getListForOrg(startTime,endTime,request.getParams()); - + // 上期结余明细 + List> lastBalance = getLastBalance(startTime, endTime, request.getParams()); + if (CollectionUtils.isNotEmpty(beanList)) { + beanList.get(0).setDataMapList(lastBalance); + } for (PayablePartBean one : beanList){ + // 按组织和合同名称 (项目名称) 将期初应付款添加到应付金额中 + BigDecimal value = handleData(one); + one.setJe(value); + one.setZqk(value.subtract(one.getYfje())); request.getParams().put("sqjz",sqjz); request.getParams().put("departmentId",one.getDepartmentId()); startDate = LocalDate.parse(startDateStr); @@ -126,4 +135,64 @@ public class SupplierReconciliationController { list.add(beanList); return list; } + + public BigDecimal handleData(PayablePartBean bean){ + // 按组织和合同名称 (项目名称) 将期初应付款添加到应付金额中 + BigDecimal value = new BigDecimal("0.00"); + try { + BigDecimal initialAccountsPayable = dao.getInitialAccountsPayable(bean); + BigDecimal je = bean.getJe(); + if(initialAccountsPayable!=null){ + value = je.add(initialAccountsPayable); + } + } catch (Exception e) { + e.printStackTrace(); + } + return value; + } + + public List> getLastBalance(String startTime, String endTime, Map params){ + List> dataList = new ArrayList<>(); + try { + List> list = dao.getLastBalance(startTime,endTime,params); + Map>> mapData = list.stream().collect(Collectors.groupingBy(item -> { + return String.valueOf(item.get("id")) ; + })); + mapData.forEach((k, v) -> { + Map dataMap = new HashMap<>(16); + // 初期欠款、应付、已付、上期结余 + BigDecimal initialDebt = new BigDecimal("0.00"); + BigDecimal meet = new BigDecimal("0.00"); + BigDecimal paid = new BigDecimal("0.00"); + BigDecimal total = new BigDecimal("0.00"); + for (int i = 0; i < v.size(); i++) { + // 初期欠款 + Map map = v.get(i); + if (Objects.equals(Integer.parseInt(String.valueOf(map.get("type"))),0)){ + dataMap.put("department",map.get("department")); + dataMap.put("proName",map.get("proName")); + initialDebt = initialDebt.add(BigDecimal.valueOf(Double.parseDouble(String.valueOf(map.get("amount"))))); + break; + } + } + for (int i = 0; i < v.size(); i++) { + // 应付、已付 + Map map = v.get(i); + BigDecimal amount = BigDecimal.valueOf(Double.parseDouble(String.valueOf(map.get("amount")))); + if (Objects.equals(Integer.parseInt(String.valueOf(map.get("type"))),1)){ + meet = meet.add(amount); + } + if (Objects.equals(Integer.parseInt(String.valueOf(map.get("type"))),2)){ + paid = paid.add(amount); + } + } + total = initialDebt.add(meet).subtract(paid); + dataMap.put("total",total.doubleValue()); + dataList.add(dataMap); + }); + } catch (Exception e) { + e.printStackTrace(); + } + return dataList; + } } diff --git a/src/main/java/com/bonus/boot/manager/ca/stas/dao/SupplierReconciliationDao.java b/src/main/java/com/bonus/boot/manager/ca/stas/dao/SupplierReconciliationDao.java index 387442c..ac0d583 100644 --- a/src/main/java/com/bonus/boot/manager/ca/stas/dao/SupplierReconciliationDao.java +++ b/src/main/java/com/bonus/boot/manager/ca/stas/dao/SupplierReconciliationDao.java @@ -41,4 +41,8 @@ public interface SupplierReconciliationDao { BigDecimal getYearYfje(@Param("startTime") String startData, @Param("endTime") String endTime, @Param("params") Map params); List getSupplierInformation2(@Param("params") Map params); + + BigDecimal getInitialAccountsPayable(PayablePartBean bean); + + List> getLastBalance(String startTime, String endTime, Map params); } diff --git a/src/main/java/com/bonus/boot/manager/ca/stas/entity/PayablePartBean.java b/src/main/java/com/bonus/boot/manager/ca/stas/entity/PayablePartBean.java index 7c82bc0..af388bd 100644 --- a/src/main/java/com/bonus/boot/manager/ca/stas/entity/PayablePartBean.java +++ b/src/main/java/com/bonus/boot/manager/ca/stas/entity/PayablePartBean.java @@ -6,6 +6,7 @@ import lombok.Data; import java.math.BigDecimal; import java.util.List; +import java.util.Map; @Data public class PayablePartBean { @@ -29,5 +30,9 @@ public class PayablePartBean { String departmentId;//组织机构 List> subList; + /** + * 上期结余明细 + * */ + List> dataMapList; } diff --git a/src/main/resources/mappers/ca/SupplierReconciliationMapper.xml b/src/main/resources/mappers/ca/SupplierReconciliationMapper.xml index d2b2917..84db515 100644 --- a/src/main/resources/mappers/ca/SupplierReconciliationMapper.xml +++ b/src/main/resources/mappers/ca/SupplierReconciliationMapper.xml @@ -10,7 +10,7 @@ SELECT GYSMC, HTMC, - COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) AS bqyfk + COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) AS bqyfk FROM ca_im_payable WHERE @@ -27,7 +27,7 @@ where IS_ACTIVE = '1' and id = #{htmc} + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/work/supplierReconciliation.js b/src/main/resources/static/js/work/supplierReconciliation.js index d686d71..5f6431e 100644 --- a/src/main/resources/static/js/work/supplierReconciliation.js +++ b/src/main/resources/static/js/work/supplierReconciliation.js @@ -190,10 +190,19 @@ function listForOrg(gysmc,startTime,endTime,sqjz) { function getListForOrg(data) { $("#dd-table").empty(); var html=""; + let cent = ''; for (var i = 0; i < data.length; i++) { var list = data[i]; for (var j =0;j 0){ + $.each(dataMapList,function (index,item){ + cent += ''+item.department+''+item.proName+''+item.total+''; + }) + } + } html +=""; // html +=""+list[j].department+""; html +=""+list[j].department+""; @@ -269,6 +278,8 @@ function getListForOrg(data) { } } $("#dd-table").append(html); + $('#dt-table thead').find('.lastBalance-td').remove(); + $("#lastBalance").before(cent); } //点击箭头隐藏或显示 diff --git a/src/main/resources/static/pages/finance/supplierReconciliation.html b/src/main/resources/static/pages/finance/supplierReconciliation.html index e211702..9c1054a 100644 --- a/src/main/resources/static/pages/finance/supplierReconciliation.html +++ b/src/main/resources/static/pages/finance/supplierReconciliation.html @@ -192,7 +192,7 @@ - + 上期结余