在供应商和客户列表增加期末应收和期末应付的计算
This commit is contained in:
@@ -73,19 +73,7 @@ public class AccountHeadController {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
try {
|
||||
JSONObject outer = new JSONObject();
|
||||
BigDecimal sum = BigDecimal.ZERO;
|
||||
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)));
|
||||
BigDecimal sum = accountHeadService.findTotalPay(supplierId, endTime, supType);
|
||||
outer.put("getAllMoney", sum);
|
||||
map.put("rows", outer);
|
||||
res.code = 200;
|
||||
@@ -124,31 +112,6 @@ public class AccountHeadController {
|
||||
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
|
||||
* website:https://qiankunpingtai.cn
|
||||
|
||||
@@ -343,19 +343,7 @@ public class DepotHeadController {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
try {
|
||||
JSONObject outer = new JSONObject();
|
||||
BigDecimal sum = BigDecimal.ZERO;
|
||||
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)));
|
||||
BigDecimal sum = depotHeadService.findTotalPay(supplierId, endTime, supType);
|
||||
outer.put("getAllMoney", sum);
|
||||
map.put("rows", outer);
|
||||
res.code = 200;
|
||||
@@ -394,32 +382,6 @@ public class DepotHeadController {
|
||||
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
|
||||
* description:
|
||||
|
||||
@@ -216,6 +216,56 @@ public class AccountHeadService {
|
||||
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 {
|
||||
List<AccountHeadVo4ListEx> resList = new ArrayList<AccountHeadVo4ListEx>();
|
||||
List<AccountHeadVo4ListEx> list = null;
|
||||
|
||||
@@ -446,6 +446,56 @@ public class DepotHeadService {
|
||||
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 {
|
||||
List<DepotHeadVo4List> resList = new ArrayList<DepotHeadVo4List>();
|
||||
List<DepotHeadVo4List> list = null;
|
||||
|
||||
@@ -10,6 +10,8 @@ import com.jsh.erp.datasource.mappers.DepotHeadMapperEx;
|
||||
import com.jsh.erp.datasource.mappers.SupplierMapper;
|
||||
import com.jsh.erp.datasource.mappers.SupplierMapperEx;
|
||||
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.user.UserService;
|
||||
import com.jsh.erp.utils.BaseResponseInfo;
|
||||
@@ -24,10 +26,9 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
import static com.jsh.erp.utils.Tools.getNow3;
|
||||
|
||||
@Service
|
||||
public class SupplierService {
|
||||
@@ -46,6 +47,10 @@ public class SupplierService {
|
||||
private AccountHeadMapperEx accountHeadMapperEx;
|
||||
@Resource
|
||||
private DepotHeadMapperEx depotHeadMapperEx;
|
||||
@Resource
|
||||
private DepotHeadService depotHeadService;
|
||||
@Resource
|
||||
private AccountHeadService accountHeadService;
|
||||
|
||||
public Supplier getSupplier(long id)throws Exception {
|
||||
Supplier result=null;
|
||||
@@ -77,16 +82,47 @@ public class SupplierService {
|
||||
|
||||
public List<Supplier> select(String supplier, String type, String phonenum,
|
||||
String telephone, String description, int offset, int rows) throws Exception{
|
||||
List<Supplier> list=null;
|
||||
List<Supplier> resList = new ArrayList<Supplier>();
|
||||
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){
|
||||
logger.error("异常码[{}],异常提示[{}],异常[{}]",
|
||||
ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e);
|
||||
throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE,
|
||||
ExceptionConstants.DATA_READ_FAIL_MSG);
|
||||
}
|
||||
return list;
|
||||
return resList;
|
||||
}
|
||||
|
||||
public Long countSupplier(String supplier, String type, String phonenum, String telephone, String description) throws Exception{
|
||||
|
||||
Reference in New Issue
Block a user