财务小工具问题修改
This commit is contained in:
parent
f03db9da75
commit
da2a2accf6
|
|
@ -10,8 +10,8 @@ public class SupplierInfoBean {
|
||||||
String address;//联系地址
|
String address;//联系地址
|
||||||
String telphone;//联系电话
|
String telphone;//联系电话
|
||||||
String contacts;//联系人
|
String contacts;//联系人
|
||||||
float openDept;//期初欠款
|
Double openDept;//期初欠款
|
||||||
float openNotInv;//期初未开票
|
Double openNotInv;//期初未开票
|
||||||
String czy;//操作人
|
String czy;//操作人
|
||||||
String czyName;//操作人名称
|
String czyName;//操作人名称
|
||||||
String czsj;//操作时间
|
String czsj;//操作时间
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import com.bonus.boot.manager.ca.stas.service.SupplierReconciliationService;
|
||||||
import com.bonus.boot.manager.manager.table.PageTableRequest;
|
import com.bonus.boot.manager.manager.table.PageTableRequest;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
@ -14,8 +15,8 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
@Api(tags = "供应商对账")
|
@Api(tags = "供应商对账")
|
||||||
|
|
@ -89,8 +90,16 @@ public class SupplierReconciliationController {
|
||||||
String sqjz=request.getParams().get("sqjz").toString();
|
String sqjz=request.getParams().get("sqjz").toString();
|
||||||
|
|
||||||
List<PayablePartBean> beanList = service.getListForOrg(startTime,endTime,request.getParams());
|
List<PayablePartBean> beanList = service.getListForOrg(startTime,endTime,request.getParams());
|
||||||
|
// 上期结余明细
|
||||||
|
List<Map<String, Object>> lastBalance = getLastBalance(startTime, endTime, request.getParams());
|
||||||
|
if (CollectionUtils.isNotEmpty(beanList)) {
|
||||||
|
beanList.get(0).setDataMapList(lastBalance);
|
||||||
|
}
|
||||||
for (PayablePartBean one : beanList){
|
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("sqjz",sqjz);
|
||||||
request.getParams().put("departmentId",one.getDepartmentId());
|
request.getParams().put("departmentId",one.getDepartmentId());
|
||||||
startDate = LocalDate.parse(startDateStr);
|
startDate = LocalDate.parse(startDateStr);
|
||||||
|
|
@ -126,4 +135,64 @@ public class SupplierReconciliationController {
|
||||||
list.add(beanList);
|
list.add(beanList);
|
||||||
return list;
|
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<Map<String,Object>> getLastBalance(String startTime, String endTime, Map<String, Object> params){
|
||||||
|
List<Map<String,Object>> dataList = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
List<Map<String,Object>> list = dao.getLastBalance(startTime,endTime,params);
|
||||||
|
Map<String, List<Map<String, Object>>> mapData = list.stream().collect(Collectors.groupingBy(item -> {
|
||||||
|
return String.valueOf(item.get("id")) ;
|
||||||
|
}));
|
||||||
|
mapData.forEach((k, v) -> {
|
||||||
|
Map<String, Object> 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<String, Object> 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<String, Object> 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,4 +41,8 @@ public interface SupplierReconciliationDao {
|
||||||
BigDecimal getYearYfje(@Param("startTime") String startData, @Param("endTime") String endTime, @Param("params") Map<String, Object> params);
|
BigDecimal getYearYfje(@Param("startTime") String startData, @Param("endTime") String endTime, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
List<SupplierReconciliationBean> getSupplierInformation2(@Param("params") Map<String, Object> params);
|
List<SupplierReconciliationBean> getSupplierInformation2(@Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
BigDecimal getInitialAccountsPayable(PayablePartBean bean);
|
||||||
|
|
||||||
|
List<Map<String, Object>> getLastBalance(String startTime, String endTime, Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import lombok.Data;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class PayablePartBean {
|
public class PayablePartBean {
|
||||||
|
|
@ -29,5 +30,9 @@ public class PayablePartBean {
|
||||||
String departmentId;//组织机构
|
String departmentId;//组织机构
|
||||||
|
|
||||||
List<List<PayablePartBean>> subList;
|
List<List<PayablePartBean>> subList;
|
||||||
|
/**
|
||||||
|
* 上期结余明细
|
||||||
|
* */
|
||||||
|
List<Map<String,Object>> dataMapList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
SELECT
|
SELECT
|
||||||
GYSMC,
|
GYSMC,
|
||||||
HTMC,
|
HTMC,
|
||||||
COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) AS bqyfk
|
COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) AS bqyfk
|
||||||
FROM
|
FROM
|
||||||
ca_im_payable
|
ca_im_payable
|
||||||
WHERE
|
WHERE
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
where IS_ACTIVE = '1' and id = #{htmc}
|
where IS_ACTIVE = '1' and id = #{htmc}
|
||||||
</select>
|
</select>
|
||||||
<select id="getPaid" resultType="java.math.BigDecimal">
|
<select id="getPaid" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) as paid
|
select COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) as paid
|
||||||
from ca_im_payment_details
|
from ca_im_payment_details
|
||||||
where IS_ACTIVE = '1' and htmc = #{htmc}
|
where IS_ACTIVE = '1' and htmc = #{htmc}
|
||||||
<if test="params.startTime != null and params.startTime !=''and params.endTime != null and params.endTime !='' ">
|
<if test="params.startTime != null and params.startTime !=''and params.endTime != null and params.endTime !='' ">
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getyfk" resultType="java.math.BigDecimal">
|
<select id="getyfk" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) as yfk
|
select COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) as yfk
|
||||||
from ca_im_payable
|
from ca_im_payable
|
||||||
WHERE
|
WHERE
|
||||||
IS_ACTIVE = '1'
|
IS_ACTIVE = '1'
|
||||||
|
|
@ -44,14 +44,14 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getyifk" resultType="java.math.BigDecimal">
|
<select id="getyifk" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(je, DECIMAL(10,2)) ),0) as yifk
|
select COALESCE(sum(CONVERT(je, DECIMAL(18,2)) ),0) as yifk
|
||||||
from ca_im_payment_details
|
from ca_im_payment_details
|
||||||
WHERE
|
WHERE
|
||||||
IS_ACTIVE = '1'
|
IS_ACTIVE = '1'
|
||||||
AND gysmc = #{params.gysmc}
|
AND gysmc = #{params.gysmc}
|
||||||
</select>
|
</select>
|
||||||
<select id="getyfkBefor" resultType="java.math.BigDecimal">
|
<select id="getyfkBefor" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) as yfkBefor
|
select COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) as yfkBefor
|
||||||
from ca_im_payable
|
from ca_im_payable
|
||||||
WHERE
|
WHERE
|
||||||
IS_ACTIVE = '1'
|
IS_ACTIVE = '1'
|
||||||
|
|
@ -61,7 +61,7 @@
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
<select id="getyifkBefor" resultType="java.math.BigDecimal">
|
<select id="getyifkBefor" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) as yifkBefor
|
select COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) as yifkBefor
|
||||||
from ca_im_payment_details
|
from ca_im_payment_details
|
||||||
WHERE
|
WHERE
|
||||||
IS_ACTIVE = '1'
|
IS_ACTIVE = '1'
|
||||||
|
|
@ -102,7 +102,8 @@
|
||||||
round(sum(cip.je),2) je,
|
round(sum(cip.je),2) je,
|
||||||
cbsi.CONTRACT_OR_PRO_NAME as htmc,
|
cbsi.CONTRACT_OR_PRO_NAME as htmc,
|
||||||
cbsi.department as departmentId,
|
cbsi.department as departmentId,
|
||||||
po.name as department
|
po.name as department,
|
||||||
|
ANY_VALUE(cbsi.ID) AS id
|
||||||
from ca_im_payable cip
|
from ca_im_payable cip
|
||||||
left join ca_bm_supplier_info cbsi on cbsi.is_active = '1' and cbsi.id = cip.htmc
|
left join ca_bm_supplier_info cbsi on cbsi.is_active = '1' and cbsi.id = cip.htmc
|
||||||
left join pm_organization po on po.id = cbsi.department and po.is_active = '1'
|
left join pm_organization po on po.id = cbsi.department and po.is_active = '1'
|
||||||
|
|
@ -127,7 +128,7 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getyfje" resultType="java.math.BigDecimal">
|
<select id="getyfje" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) as je
|
select COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) as je
|
||||||
from ca_im_payable
|
from ca_im_payable
|
||||||
WHERE
|
WHERE
|
||||||
IS_ACTIVE = '1'
|
IS_ACTIVE = '1'
|
||||||
|
|
@ -151,14 +152,14 @@
|
||||||
ORDER BY cipd.rq asc
|
ORDER BY cipd.rq asc
|
||||||
</select>
|
</select>
|
||||||
<select id="getqcyfkNum" resultType="java.math.BigDecimal">
|
<select id="getqcyfkNum" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(OPEN_DEBT, DECIMAL(10,2))),0) as qcyfk
|
select COALESCE(sum(CONVERT(OPEN_DEBT, DECIMAL(18,2))),0) as qcyfk
|
||||||
from ca_bm_supplier_info
|
from ca_bm_supplier_info
|
||||||
WHERE
|
WHERE
|
||||||
IS_ACTIVE = '1'
|
IS_ACTIVE = '1'
|
||||||
AND name = #{params.gysmc}
|
AND name = #{params.gysmc}
|
||||||
</select>
|
</select>
|
||||||
<select id="getYearJe" resultType="java.math.BigDecimal">
|
<select id="getYearJe" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) as je
|
select COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) as je
|
||||||
from ca_im_payable
|
from ca_im_payable
|
||||||
WHERE
|
WHERE
|
||||||
IS_ACTIVE = '1'
|
IS_ACTIVE = '1'
|
||||||
|
|
@ -168,7 +169,7 @@
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
<select id="getYearYfje" resultType="java.math.BigDecimal">
|
<select id="getYearYfje" resultType="java.math.BigDecimal">
|
||||||
select COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) as yfje
|
select COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) as yfje
|
||||||
from ca_im_payment_details
|
from ca_im_payment_details
|
||||||
WHERE
|
WHERE
|
||||||
IS_ACTIVE = '1'
|
IS_ACTIVE = '1'
|
||||||
|
|
@ -182,7 +183,7 @@
|
||||||
SELECT
|
SELECT
|
||||||
GYSMC,
|
GYSMC,
|
||||||
HTMC,
|
HTMC,
|
||||||
COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) AS paid
|
COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) AS paid
|
||||||
FROM
|
FROM
|
||||||
ca_im_payment_details
|
ca_im_payment_details
|
||||||
WHERE
|
WHERE
|
||||||
|
|
@ -193,4 +194,44 @@
|
||||||
</if>
|
</if>
|
||||||
GROUP BY HTMC
|
GROUP BY HTMC
|
||||||
</select>
|
</select>
|
||||||
|
<!--按组织和合同名称 (项目名称) 查询期初应付款-->
|
||||||
|
<select id="getInitialAccountsPayable" resultType="java.math.BigDecimal">
|
||||||
|
SELECT OPEN_DEBT AS openDebt
|
||||||
|
FROM ca_bm_supplier_info
|
||||||
|
WHERE IS_ACTIVE = '1' AND ID = #{id}
|
||||||
|
</select>
|
||||||
|
<!--上期结余-->
|
||||||
|
<select id="getLastBalance" resultType="java.util.Map">
|
||||||
|
SELECT cbsi.CONTRACT_OR_PRO_NAME AS proName,
|
||||||
|
po.name AS department,
|
||||||
|
cbsi.department AS departmentId,
|
||||||
|
cbsi.OPEN_DEBT AS amount,
|
||||||
|
0 AS type,
|
||||||
|
cbsi.id
|
||||||
|
FROM ca_bm_supplier_info cbsi
|
||||||
|
LEFT JOIN pm_organization po on po.id = cbsi.department and po.is_active = '1'
|
||||||
|
WHERE cbsi.NAME = #{params.gysmc} AND cbsi.IS_ACTIVE = '1'
|
||||||
|
UNION ALL
|
||||||
|
SELECT cbsi.CONTRACT_OR_PRO_NAME AS proName,
|
||||||
|
po.name AS department,
|
||||||
|
cbsi.department AS departmentId,
|
||||||
|
cip.JE AS amount,
|
||||||
|
1 AS type,
|
||||||
|
cbsi.id
|
||||||
|
FROM ca_bm_supplier_info cbsi
|
||||||
|
LEFT JOIN pm_organization po on po.id = cbsi.department and po.is_active = '1'
|
||||||
|
INNER JOIN ca_im_payable cip on cip.htmc = cbsi.id AND cip.IS_ACTIVE = '1' AND RQ < #{params.startTime}
|
||||||
|
WHERE cbsi.NAME = #{params.gysmc} AND cbsi.IS_ACTIVE = '1'
|
||||||
|
UNION ALL
|
||||||
|
SELECT cbsi.CONTRACT_OR_PRO_NAME AS proName,
|
||||||
|
po.name AS department,
|
||||||
|
cbsi.department AS departmentId,
|
||||||
|
cipd.JE AS amount,
|
||||||
|
2 AS type,
|
||||||
|
cbsi.id
|
||||||
|
FROM ca_bm_supplier_info cbsi
|
||||||
|
LEFT JOIN pm_organization po ON po.id = cbsi.department and po.is_active = '1'
|
||||||
|
INNER JOIN ca_im_payment_details cipd ON cipd.htmc = cbsi.id AND cipd.IS_ACTIVE = '1' AND RQ < #{params.startTime}
|
||||||
|
WHERE cbsi.NAME = #{params.gysmc} AND cbsi.IS_ACTIVE = '1'
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -190,10 +190,19 @@ function listForOrg(gysmc,startTime,endTime,sqjz) {
|
||||||
function getListForOrg(data) {
|
function getListForOrg(data) {
|
||||||
$("#dd-table").empty();
|
$("#dd-table").empty();
|
||||||
var html="";
|
var html="";
|
||||||
|
let cent = '';
|
||||||
|
|
||||||
for (var i = 0; i < data.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
var list = data[i];
|
var list = data[i];
|
||||||
for (var j =0;j<list.length;j++){
|
for (var j =0;j<list.length;j++){
|
||||||
|
if(j === 0){
|
||||||
|
const dataMapList =list[0].dataMapList;
|
||||||
|
if(dataMapList && dataMapList.length > 0){
|
||||||
|
$.each(dataMapList,function (index,item){
|
||||||
|
cent += '<tr class="lastBalance-td" style="font-size: 17px;"><td colspan="3">'+item.department+'</td><td colspan="3">'+item.proName+'</td><td colspan="3">'+item.total+'</td></tr>';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
html +="<tr>";
|
html +="<tr>";
|
||||||
// html +="<td colspan='3' attr-index='"+j+"' class='showOrHide' onclick='showOrHide("+j+")'>"+list[j].department+"</td>";
|
// html +="<td colspan='3' attr-index='"+j+"' class='showOrHide' onclick='showOrHide("+j+")'>"+list[j].department+"</td>";
|
||||||
html +="<td style='background-color: #ffffff !important;' colspan='3' ><i class='layui-icon layui-icon-triangle-r main-color main-cursor showOrHide' attr-index='"+j+"'></i>"+list[j].department+"</td>";
|
html +="<td style='background-color: #ffffff !important;' colspan='3' ><i class='layui-icon layui-icon-triangle-r main-color main-cursor showOrHide' attr-index='"+j+"'></i>"+list[j].department+"</td>";
|
||||||
|
|
@ -269,6 +278,8 @@ function getListForOrg(data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$("#dd-table").append(html);
|
$("#dd-table").append(html);
|
||||||
|
$('#dt-table thead').find('.lastBalance-td').remove();
|
||||||
|
$("#lastBalance").before(cent);
|
||||||
|
|
||||||
}
|
}
|
||||||
//点击箭头隐藏或显示
|
//点击箭头隐藏或显示
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@
|
||||||
<!-- <th>总欠款</th>-->
|
<!-- <th>总欠款</th>-->
|
||||||
<!-- </tr>-->
|
<!-- </tr>-->
|
||||||
|
|
||||||
<tr>
|
<tr id="lastBalance">
|
||||||
<th colspan="5">上期结余</th>
|
<th colspan="5">上期结余</th>
|
||||||
<th colspan="4" >
|
<th colspan="4" >
|
||||||
<input type="text" name="sqjz" id="sqjz" readonly class="layui-input" style="text-align: center">
|
<input type="text" name="sqjz" id="sqjz" readonly class="layui-input" style="text-align: center">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue