财务小工具问题修改
This commit is contained in:
parent
f03db9da75
commit
da2a2accf6
|
|
@ -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;//操作时间
|
||||
|
|
|
|||
|
|
@ -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<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){
|
||||
// 按组织和合同名称 (项目名称) 将期初应付款添加到应付金额中
|
||||
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<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);
|
||||
|
||||
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.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class PayablePartBean {
|
||||
|
|
@ -29,5 +30,9 @@ public class PayablePartBean {
|
|||
String departmentId;//组织机构
|
||||
|
||||
List<List<PayablePartBean>> subList;
|
||||
/**
|
||||
* 上期结余明细
|
||||
* */
|
||||
List<Map<String,Object>> dataMapList;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
</select>
|
||||
<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
|
||||
where IS_ACTIVE = '1' and htmc = #{htmc}
|
||||
<if test="params.startTime != null and params.startTime !=''and params.endTime != null and params.endTime !='' ">
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
</select>
|
||||
|
||||
<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
|
||||
WHERE
|
||||
IS_ACTIVE = '1'
|
||||
|
|
@ -44,14 +44,14 @@
|
|||
</select>
|
||||
|
||||
<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
|
||||
WHERE
|
||||
IS_ACTIVE = '1'
|
||||
AND gysmc = #{params.gysmc}
|
||||
</select>
|
||||
<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
|
||||
WHERE
|
||||
IS_ACTIVE = '1'
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
</if>
|
||||
</select>
|
||||
<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
|
||||
WHERE
|
||||
IS_ACTIVE = '1'
|
||||
|
|
@ -102,7 +102,8 @@
|
|||
round(sum(cip.je),2) je,
|
||||
cbsi.CONTRACT_OR_PRO_NAME as htmc,
|
||||
cbsi.department as departmentId,
|
||||
po.name as department
|
||||
po.name as department,
|
||||
ANY_VALUE(cbsi.ID) AS id
|
||||
from ca_im_payable cip
|
||||
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'
|
||||
|
|
@ -127,7 +128,7 @@
|
|||
</select>
|
||||
|
||||
<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
|
||||
WHERE
|
||||
IS_ACTIVE = '1'
|
||||
|
|
@ -151,14 +152,14 @@
|
|||
ORDER BY cipd.rq asc
|
||||
</select>
|
||||
<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
|
||||
WHERE
|
||||
IS_ACTIVE = '1'
|
||||
AND name = #{params.gysmc}
|
||||
</select>
|
||||
<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
|
||||
WHERE
|
||||
IS_ACTIVE = '1'
|
||||
|
|
@ -168,7 +169,7 @@
|
|||
</if>
|
||||
</select>
|
||||
<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
|
||||
WHERE
|
||||
IS_ACTIVE = '1'
|
||||
|
|
@ -182,7 +183,7 @@
|
|||
SELECT
|
||||
GYSMC,
|
||||
HTMC,
|
||||
COALESCE(sum(CONVERT(je, DECIMAL(10,2))),0) AS paid
|
||||
COALESCE(sum(CONVERT(je, DECIMAL(18,2))),0) AS paid
|
||||
FROM
|
||||
ca_im_payment_details
|
||||
WHERE
|
||||
|
|
@ -193,4 +194,44 @@
|
|||
</if>
|
||||
GROUP BY HTMC
|
||||
</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>
|
||||
|
|
@ -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<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 +="<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>";
|
||||
|
|
@ -269,6 +278,8 @@ function getListForOrg(data) {
|
|||
}
|
||||
}
|
||||
$("#dd-table").append(html);
|
||||
$('#dt-table thead').find('.lastBalance-td').remove();
|
||||
$("#lastBalance").before(cent);
|
||||
|
||||
}
|
||||
//点击箭头隐藏或显示
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@
|
|||
<!-- <th>总欠款</th>-->
|
||||
<!-- </tr>-->
|
||||
|
||||
<tr>
|
||||
<tr id="lastBalance">
|
||||
<th colspan="5">上期结余</th>
|
||||
<th colspan="4" >
|
||||
<input type="text" name="sqjz" id="sqjz" readonly class="layui-input" style="text-align: center">
|
||||
|
|
|
|||
Loading…
Reference in New Issue