在供应商和客户列表增加期末应收和期末应付的计算

This commit is contained in:
季圣华
2019-06-16 22:04:37 +08:00
parent d9627ac020
commit 0d1deaa197
6 changed files with 147 additions and 84 deletions

View File

@@ -76,6 +76,8 @@
{ title: '预付款',field: 'advancein',width:70,align:"center"}, { title: '预付款',field: 'advancein',width:70,align:"center"},
{ title: '期初应收',field: 'beginneedget',width:70,align:"center"}, { title: '期初应收',field: 'beginneedget',width:70,align:"center"},
{ title: '期初应付',field: 'beginneedpay',width:70,align:"center"}, { title: '期初应付',field: 'beginneedpay',width:70,align:"center"},
{ title: '期末应收',field: 'allneedget',width:70,align:"center"},
{ title: '期末应付',field: 'allneedpay',width:70,align:"center"},
{ title: '税率(%)', field: 'taxrate',width:50,align:"center"}, { title: '税率(%)', field: 'taxrate',width:50,align:"center"},
{ title: '状态',field: 'enabled',width:70,align:"center",formatter:function(value){ { title: '状态',field: 'enabled',width:70,align:"center",formatter:function(value){
return value? "启用":"禁用"; return value? "启用":"禁用";

View File

@@ -73,19 +73,7 @@ public class AccountHeadController {
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
try { try {
JSONObject outer = new JSONObject(); JSONObject outer = new JSONObject();
BigDecimal sum = BigDecimal.ZERO; BigDecimal sum = accountHeadService.findTotalPay(supplierId, endTime, supType);
String getS = supplierId.toString();
int i = 1;
if (supType.equals("customer")) { //客户
i = 1;
} else if (supType.equals("vendor")) { //供应商
i = -1;
}
//收付款部分
sum = sum.add((allMoney(getS, "付款", "合计",endTime).add(allMoney(getS, "付款", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.subtract((allMoney(getS, "收款", "合计",endTime).add(allMoney(getS, "收款", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.add((allMoney(getS, "收入", "合计",endTime).subtract(allMoney(getS, "收入", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.subtract((allMoney(getS, "支出", "合计",endTime).subtract(allMoney(getS, "支出", "实际",endTime))).multiply(new BigDecimal(i)));
outer.put("getAllMoney", sum); outer.put("getAllMoney", sum);
map.put("rows", outer); map.put("rows", outer);
res.code = 200; res.code = 200;
@@ -124,31 +112,6 @@ public class AccountHeadController {
return res; return res;
} }
/**
* 统计总金额
* @param getS
* @param type
* @param mode 合计或者金额
* @param endTime
* @return
*/
public BigDecimal allMoney(String getS, String type, String mode, String endTime)throws Exception {
BigDecimal allMoney = BigDecimal.ZERO;
try {
Integer supplierId = Integer.valueOf(getS);
BigDecimal sum = accountHeadService.findAllMoney(supplierId, type, mode, endTime);
if(sum != null) {
allMoney = sum;
}
} catch (Exception e) {
e.printStackTrace();
}
//返回正数,如果负数也转为正数
if ((allMoney.compareTo(BigDecimal.ZERO))==-1) {
allMoney = allMoney.abs();
}
return allMoney;
}
/** /**
* create by: qiankunpingtai * create by: qiankunpingtai
* websitehttps://qiankunpingtai.cn * websitehttps://qiankunpingtai.cn

View File

@@ -343,19 +343,7 @@ public class DepotHeadController {
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
try { try {
JSONObject outer = new JSONObject(); JSONObject outer = new JSONObject();
BigDecimal sum = BigDecimal.ZERO; BigDecimal sum = depotHeadService.findTotalPay(supplierId, endTime, supType);
String getS = supplierId.toString();
int i = 1;
if (supType.equals("customer")) { //客户
i = 1;
} else if (supType.equals("vendor")) { //供应商
i = -1;
}
//进销部分
sum = sum.subtract((allMoney(getS, "入库", "采购", "合计",endTime).subtract(allMoney(getS, "入库", "采购", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.subtract((allMoney(getS, "入库", "销售退货", "合计",endTime).subtract(allMoney(getS, "入库", "销售退货", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.add((allMoney(getS, "出库", "销售", "合计",endTime).subtract(allMoney(getS, "出库", "销售", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.add((allMoney(getS, "出库", "采购退货", "合计",endTime).subtract(allMoney(getS, "出库", "采购退货", "实际",endTime))).multiply(new BigDecimal(i)));
outer.put("getAllMoney", sum); outer.put("getAllMoney", sum);
map.put("rows", outer); map.put("rows", outer);
res.code = 200; res.code = 200;
@@ -394,32 +382,6 @@ public class DepotHeadController {
return res; return res;
} }
/**
* 统计总金额
* @param getS
* @param type
* @param subType
* @param mode 合计或者金额
* @return
*/
public BigDecimal allMoney(String getS, String type, String subType, String mode, String endTime)throws Exception {
BigDecimal allMoney = BigDecimal.ZERO;
try {
Integer supplierId = Integer.valueOf(getS);
BigDecimal sum = depotHeadService.findAllMoney(supplierId, type, subType, mode, endTime);
if(sum != null) {
allMoney = sum;
}
} catch (Exception e) {
e.printStackTrace();
}
//返回正数,如果负数也转为正数
if ((allMoney.compareTo(BigDecimal.ZERO))==-1) {
allMoney = allMoney.abs();
}
return allMoney;
}
/** /**
* create by: cjl * create by: cjl
* description: * description:

View File

@@ -216,6 +216,56 @@ public class AccountHeadService {
return result; return result;
} }
/**
* 统计总金额
* @param getS
* @param type
* @param mode 合计或者金额
* @param endTime
* @return
*/
public BigDecimal allMoney(String getS, String type, String mode, String endTime) {
BigDecimal allMoney = BigDecimal.ZERO;
try {
Integer supplierId = Integer.valueOf(getS);
BigDecimal sum = findAllMoney(supplierId, type, mode, endTime);
if(sum != null) {
allMoney = sum;
}
} catch (Exception e) {
e.printStackTrace();
}
//返回正数,如果负数也转为正数
if ((allMoney.compareTo(BigDecimal.ZERO))==-1) {
allMoney = allMoney.abs();
}
return allMoney;
}
/**
* 查询单位的累计应收和累计应付,收预付款不计入此处
* @param supplierId
* @param endTime
* @param supType
* @return
*/
public BigDecimal findTotalPay(Integer supplierId, String endTime, String supType) {
BigDecimal sum = BigDecimal.ZERO;
String getS = supplierId.toString();
int i = 1;
if (("customer").equals(supType)) { //客户
i = 1;
} else if (("vendor").equals(supType)) { //供应商
i = -1;
}
//收付款部分
sum = sum.add((allMoney(getS, "付款", "合计",endTime).add(allMoney(getS, "付款", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.subtract((allMoney(getS, "收款", "合计",endTime).add(allMoney(getS, "收款", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.add((allMoney(getS, "收入", "合计",endTime).subtract(allMoney(getS, "收入", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.subtract((allMoney(getS, "支出", "合计",endTime).subtract(allMoney(getS, "支出", "实际",endTime))).multiply(new BigDecimal(i)));
return sum;
}
public List<AccountHeadVo4ListEx> getDetailByNumber(String billNo)throws Exception { public List<AccountHeadVo4ListEx> getDetailByNumber(String billNo)throws Exception {
List<AccountHeadVo4ListEx> resList = new ArrayList<AccountHeadVo4ListEx>(); List<AccountHeadVo4ListEx> resList = new ArrayList<AccountHeadVo4ListEx>();
List<AccountHeadVo4ListEx> list = null; List<AccountHeadVo4ListEx> list = null;

View File

@@ -446,6 +446,56 @@ public class DepotHeadService {
return result; return result;
} }
/**
* 统计总金额
* @param getS
* @param type
* @param subType
* @param mode 合计或者金额
* @return
*/
public BigDecimal allMoney(String getS, String type, String subType, String mode, String endTime) {
BigDecimal allMoney = BigDecimal.ZERO;
try {
Integer supplierId = Integer.valueOf(getS);
BigDecimal sum = findAllMoney(supplierId, type, subType, mode, endTime);
if(sum != null) {
allMoney = sum;
}
} catch (Exception e) {
e.printStackTrace();
}
//返回正数,如果负数也转为正数
if ((allMoney.compareTo(BigDecimal.ZERO))==-1) {
allMoney = allMoney.abs();
}
return allMoney;
}
/**
* 查询单位的累计应收和累计应付,零售不能计入
* @param supplierId
* @param endTime
* @param supType
* @return
*/
public BigDecimal findTotalPay(Integer supplierId, String endTime, String supType) {
BigDecimal sum = BigDecimal.ZERO;
String getS = supplierId.toString();
int i = 1;
if (("customer").equals(supType)) { //客户
i = 1;
} else if (("vendor").equals(supType)) { //供应商
i = -1;
}
//进销部分
sum = sum.subtract((allMoney(getS, "入库", "采购", "合计",endTime).subtract(allMoney(getS, "入库", "采购", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.subtract((allMoney(getS, "入库", "销售退货", "合计",endTime).subtract(allMoney(getS, "入库", "销售退货", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.add((allMoney(getS, "出库", "销售", "合计",endTime).subtract(allMoney(getS, "出库", "销售", "实际",endTime))).multiply(new BigDecimal(i)));
sum = sum.add((allMoney(getS, "出库", "采购退货", "合计",endTime).subtract(allMoney(getS, "出库", "采购退货", "实际",endTime))).multiply(new BigDecimal(i)));
return sum;
}
public List<DepotHeadVo4List> getDetailByNumber(String number)throws Exception { public List<DepotHeadVo4List> getDetailByNumber(String number)throws Exception {
List<DepotHeadVo4List> resList = new ArrayList<DepotHeadVo4List>(); List<DepotHeadVo4List> resList = new ArrayList<DepotHeadVo4List>();
List<DepotHeadVo4List> list = null; List<DepotHeadVo4List> list = null;

View File

@@ -10,6 +10,8 @@ import com.jsh.erp.datasource.mappers.DepotHeadMapperEx;
import com.jsh.erp.datasource.mappers.SupplierMapper; import com.jsh.erp.datasource.mappers.SupplierMapper;
import com.jsh.erp.datasource.mappers.SupplierMapperEx; import com.jsh.erp.datasource.mappers.SupplierMapperEx;
import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.exception.BusinessRunTimeException;
import com.jsh.erp.service.accountHead.AccountHeadService;
import com.jsh.erp.service.depotHead.DepotHeadService;
import com.jsh.erp.service.log.LogService; import com.jsh.erp.service.log.LogService;
import com.jsh.erp.service.user.UserService; import com.jsh.erp.service.user.UserService;
import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.BaseResponseInfo;
@@ -24,10 +26,9 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.List; import static com.jsh.erp.utils.Tools.getNow3;
import java.util.Map;
@Service @Service
public class SupplierService { public class SupplierService {
@@ -46,6 +47,10 @@ public class SupplierService {
private AccountHeadMapperEx accountHeadMapperEx; private AccountHeadMapperEx accountHeadMapperEx;
@Resource @Resource
private DepotHeadMapperEx depotHeadMapperEx; private DepotHeadMapperEx depotHeadMapperEx;
@Resource
private DepotHeadService depotHeadService;
@Resource
private AccountHeadService accountHeadService;
public Supplier getSupplier(long id)throws Exception { public Supplier getSupplier(long id)throws Exception {
Supplier result=null; Supplier result=null;
@@ -77,16 +82,47 @@ public class SupplierService {
public List<Supplier> select(String supplier, String type, String phonenum, public List<Supplier> select(String supplier, String type, String phonenum,
String telephone, String description, int offset, int rows) throws Exception{ String telephone, String description, int offset, int rows) throws Exception{
List<Supplier> list=null; List<Supplier> resList = new ArrayList<Supplier>();
try{ try{
list=supplierMapperEx.selectByConditionSupplier(supplier, type, phonenum, telephone, description, offset, rows); List<Supplier> list = supplierMapperEx.selectByConditionSupplier(supplier, type, phonenum, telephone, description, offset, rows);
for(Supplier s : list) {
Integer supplierId = s.getId().intValue();
String endTime = getNow3();
String supType = null;
if(("客户").equals(s.getType())) {
supType = "customer";
} else if(("供应商").equals(s.getType())) {
supType = "vendor";
}
BigDecimal sum = BigDecimal.ZERO;
BigDecimal beginNeedGet = s.getBeginneedget();
if(beginNeedGet==null) {
beginNeedGet = BigDecimal.ZERO;
}
BigDecimal beginNeedPay = s.getBeginneedpay();
if(beginNeedPay==null) {
beginNeedPay = BigDecimal.ZERO;
}
sum = sum.add(depotHeadService.findTotalPay(supplierId, endTime, supType));
sum = sum.add(accountHeadService.findTotalPay(supplierId, endTime, supType));
if(("客户").equals(s.getType())) {
sum = sum.add(beginNeedGet).subtract(beginNeedPay);
s.setAllneedget(sum);
s.setAllneedpay(BigDecimal.ZERO);
} else if(("供应商").equals(s.getType())) {
sum = sum.add(beginNeedPay).subtract(beginNeedGet);
s.setAllneedget(BigDecimal.ZERO);
s.setAllneedpay(sum);
}
resList.add(s);
}
}catch(Exception e){ }catch(Exception e){
logger.error("异常码[{}],异常提示[{}],异常[{}]", logger.error("异常码[{}],异常提示[{}],异常[{}]",
ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e); ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e);
throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE, throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE,
ExceptionConstants.DATA_READ_FAIL_MSG); ExceptionConstants.DATA_READ_FAIL_MSG);
} }
return list; return resList;
} }
public Long countSupplier(String supplier, String type, String phonenum, String telephone, String description) throws Exception{ public Long countSupplier(String supplier, String type, String phonenum, String telephone, String description) throws Exception{