优化账户统计的查询逻辑
This commit is contained in:
@@ -12,6 +12,8 @@ import com.jsh.erp.service.account.AccountService;
|
|||||||
import com.jsh.erp.service.systemConfig.SystemConfigService;
|
import com.jsh.erp.service.systemConfig.SystemConfigService;
|
||||||
import com.jsh.erp.utils.BaseResponseInfo;
|
import com.jsh.erp.utils.BaseResponseInfo;
|
||||||
import com.jsh.erp.utils.ErpInfo;
|
import com.jsh.erp.utils.ErpInfo;
|
||||||
|
import com.jsh.erp.utils.StringUtil;
|
||||||
|
import com.jsh.erp.utils.Tools;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -22,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
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.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -126,8 +129,11 @@ public class AccountController {
|
|||||||
String type = aEx.getType().replace("其它", "");
|
String type = aEx.getType().replace("其它", "");
|
||||||
aEx.setType(type);
|
aEx.setType(type);
|
||||||
String timeStr = aEx.getOperTime().toString();
|
String timeStr = aEx.getOperTime().toString();
|
||||||
BigDecimal balance = accountService.getAccountSum(accountId, timeStr, "date", forceFlag).add(accountService.getAccountSumByHead(accountId, timeStr, "date", forceFlag))
|
String endTime = timeStr;
|
||||||
.add(accountService.getAccountSumByDetail(accountId, timeStr, "date", forceFlag)).add(accountService.getManyAccountSum(accountId, timeStr, "date", forceFlag)).add(initialAmount);
|
BigDecimal balance = accountService.getAccountSum(accountId, null, endTime, forceFlag)
|
||||||
|
.add(accountService.getAccountSumByHead(accountId, null, endTime, forceFlag))
|
||||||
|
.add(accountService.getAccountSumByDetail(accountId, timeStr, "date", forceFlag))
|
||||||
|
.add(accountService.getManyAccountSum(accountId, timeStr, "date", forceFlag)).add(initialAmount);
|
||||||
aEx.setBalance(balance);
|
aEx.setBalance(balance);
|
||||||
aEx.setAccountId(accountId);
|
aEx.setAccountId(accountId);
|
||||||
dataArray.add(aEx);
|
dataArray.add(aEx);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.jsh.erp.datasource.vo.AccountVo4InOutList;
|
|||||||
import com.jsh.erp.datasource.vo.AccountVo4List;
|
import com.jsh.erp.datasource.vo.AccountVo4List;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -27,6 +28,18 @@ public interface AccountMapperEx {
|
|||||||
@Param("serialNo") String serialNo,
|
@Param("serialNo") String serialNo,
|
||||||
@Param("remark") String remark);
|
@Param("remark") String remark);
|
||||||
|
|
||||||
|
BigDecimal getAccountSum(
|
||||||
|
@Param("accountId") Long accountId,
|
||||||
|
@Param("beginTime") String beginTime,
|
||||||
|
@Param("endTime") String endTime,
|
||||||
|
@Param("forceFlag") Boolean forceFlag);
|
||||||
|
|
||||||
|
BigDecimal getAccountSumByHead(
|
||||||
|
@Param("accountId") Long accountId,
|
||||||
|
@Param("beginTime") String beginTime,
|
||||||
|
@Param("endTime") String endTime,
|
||||||
|
@Param("forceFlag") Boolean forceFlag);
|
||||||
|
|
||||||
List<AccountVo4InOutList> findAccountInOutList(
|
List<AccountVo4InOutList> findAccountInOutList(
|
||||||
@Param("accountId") Long accountId,
|
@Param("accountId") Long accountId,
|
||||||
@Param("offset") Integer offset,
|
@Param("offset") Integer offset,
|
||||||
@@ -36,5 +49,4 @@ public interface AccountMapperEx {
|
|||||||
@Param("accountId") Long accountId);
|
@Param("accountId") Long accountId);
|
||||||
|
|
||||||
int batchDeleteAccountByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]);
|
int batchDeleteAccountByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -104,19 +104,25 @@ public class AccountService {
|
|||||||
try{
|
try{
|
||||||
List<AccountVo4List> list = accountMapperEx.selectByConditionAccount(name, serialNo, remark, offset, rows);
|
List<AccountVo4List> list = accountMapperEx.selectByConditionAccount(name, serialNo, remark, offset, rows);
|
||||||
String timeStr = Tools.getCurrentMonth();
|
String timeStr = Tools.getCurrentMonth();
|
||||||
|
String bTime = Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME;
|
||||||
|
String eTime = Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME;
|
||||||
Boolean forceFlag = systemConfigService.getForceApprovalFlag();
|
Boolean forceFlag = systemConfigService.getForceApprovalFlag();
|
||||||
if (null != list) {
|
if (null != list) {
|
||||||
for (AccountVo4List al : list) {
|
for (AccountVo4List al : list) {
|
||||||
DecimalFormat df = new DecimalFormat(".##");
|
DecimalFormat df = new DecimalFormat(".##");
|
||||||
BigDecimal thisMonthAmount = getAccountSum(al.getId(), timeStr, "month", forceFlag).add(getAccountSumByHead(al.getId(), timeStr, "month", forceFlag))
|
BigDecimal thisMonthAmount = getAccountSum(al.getId(), bTime, eTime, forceFlag)
|
||||||
.add(getAccountSumByDetail(al.getId(), timeStr, "month", forceFlag)).add(getManyAccountSum(al.getId(), timeStr, "month", forceFlag));
|
.add(getAccountSumByHead(al.getId(), bTime, eTime, forceFlag))
|
||||||
|
.add(getAccountSumByDetail(al.getId(), timeStr, "month", forceFlag))
|
||||||
|
.add(getManyAccountSum(al.getId(), timeStr, "month", forceFlag));
|
||||||
String thisMonthAmountFmt = "0";
|
String thisMonthAmountFmt = "0";
|
||||||
if ((thisMonthAmount.compareTo(BigDecimal.ZERO))!=0) {
|
if ((thisMonthAmount.compareTo(BigDecimal.ZERO))!=0) {
|
||||||
thisMonthAmountFmt = df.format(thisMonthAmount);
|
thisMonthAmountFmt = df.format(thisMonthAmount);
|
||||||
}
|
}
|
||||||
al.setThisMonthAmount(thisMonthAmountFmt); //本月发生额
|
al.setThisMonthAmount(thisMonthAmountFmt); //本月发生额
|
||||||
BigDecimal currentAmount = getAccountSum(al.getId(), "", "month", forceFlag).add(getAccountSumByHead(al.getId(), "", "month", forceFlag))
|
BigDecimal currentAmount = getAccountSum(al.getId(), null, null, forceFlag)
|
||||||
.add(getAccountSumByDetail(al.getId(), "", "month", forceFlag)).add(getManyAccountSum(al.getId(), "", "month", forceFlag)) .add(al.getInitialAmount()) ;
|
.add(getAccountSumByHead(al.getId(), null, null, forceFlag))
|
||||||
|
.add(getAccountSumByDetail(al.getId(), "", "month", forceFlag))
|
||||||
|
.add(getManyAccountSum(al.getId(), "", "month", forceFlag)) .add(al.getInitialAmount()) ;
|
||||||
al.setCurrentAmount(currentAmount);
|
al.setCurrentAmount(currentAmount);
|
||||||
resList.add(al);
|
resList.add(al);
|
||||||
}
|
}
|
||||||
@@ -274,101 +280,18 @@ public class AccountService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 单个账户的金额求和-入库和出库
|
* 单个账户的金额求和-入库和出库
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public BigDecimal getAccountSum(Long id, String timeStr, String type, Boolean forceFlag) throws Exception{
|
public BigDecimal getAccountSum(Long accountId, String beginTime, String endTime, Boolean forceFlag) throws Exception{
|
||||||
BigDecimal accountSum = BigDecimal.ZERO;
|
return accountMapperEx.getAccountSum(accountId, beginTime, endTime, forceFlag);
|
||||||
try {
|
|
||||||
DepotHeadExample example = new DepotHeadExample();
|
|
||||||
DepotHeadExample.Criteria criteria = example.createCriteria();
|
|
||||||
if (!timeStr.equals("")) {
|
|
||||||
Date bTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
|
||||||
Date eTime = StringUtil.getDateByString(Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME, null);
|
|
||||||
Date mTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
|
||||||
if (type.equals("month")) {
|
|
||||||
criteria.andAccountIdEqualTo(id).andPayTypeNotEqualTo("预付款")
|
|
||||||
.andOperTimeGreaterThanOrEqualTo(bTime).andOperTimeLessThanOrEqualTo(eTime)
|
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
|
||||||
} else if (type.equals("date")) {
|
|
||||||
criteria.andAccountIdEqualTo(id).andPayTypeNotEqualTo("预付款")
|
|
||||||
.andOperTimeLessThanOrEqualTo(mTime).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
criteria.andAccountIdEqualTo(id).andPayTypeNotEqualTo("预付款")
|
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
|
||||||
}
|
|
||||||
List<DepotHead> dataList=null;
|
|
||||||
try{
|
|
||||||
if(forceFlag) {
|
|
||||||
criteria.andStatusEqualTo("1");
|
|
||||||
}
|
|
||||||
dataList = depotHeadMapper.selectByExample(example);
|
|
||||||
}catch(Exception e){
|
|
||||||
JshException.readFail(logger, e);
|
|
||||||
}
|
|
||||||
if (dataList != null) {
|
|
||||||
for (DepotHead depotHead : dataList) {
|
|
||||||
if(depotHead.getChangeAmount()!=null) {
|
|
||||||
accountSum = accountSum .add(depotHead.getChangeAmount()) ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (DataAccessException e) {
|
|
||||||
logger.error(">>>>>>>>>查找进销存信息异常", e);
|
|
||||||
}
|
|
||||||
return accountSum;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单个账户的金额求和-收入、支出、转账的单据表头的合计
|
* 单个账户的金额求和-收入、支出、转账的单据表头的合计
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public BigDecimal getAccountSumByHead(Long id, String timeStr, String type, Boolean forceFlag) throws Exception{
|
public BigDecimal getAccountSumByHead(Long accountId, String beginTime, String endTime, Boolean forceFlag) throws Exception{
|
||||||
BigDecimal accountSum = BigDecimal.ZERO;
|
return accountMapperEx.getAccountSumByHead(accountId, beginTime, endTime, forceFlag);
|
||||||
try {
|
|
||||||
AccountHeadExample example = new AccountHeadExample();
|
|
||||||
AccountHeadExample.Criteria criteria = example.createCriteria();
|
|
||||||
if (!timeStr.equals("")) {
|
|
||||||
Date bTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
|
||||||
Date eTime = StringUtil.getDateByString(Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME, null);
|
|
||||||
Date mTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
|
||||||
if (type.equals("month")) {
|
|
||||||
criteria.andAccountIdEqualTo(id)
|
|
||||||
.andBillTimeGreaterThanOrEqualTo(bTime).andBillTimeLessThanOrEqualTo(eTime)
|
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
|
||||||
} else if (type.equals("date")) {
|
|
||||||
criteria.andAccountIdEqualTo(id)
|
|
||||||
.andBillTimeLessThanOrEqualTo(mTime)
|
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
criteria.andAccountIdEqualTo(id)
|
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
|
||||||
}
|
|
||||||
List<AccountHead> dataList=null;
|
|
||||||
try{
|
|
||||||
if(forceFlag) {
|
|
||||||
criteria.andStatusEqualTo("1");
|
|
||||||
}
|
|
||||||
dataList = accountHeadMapper.selectByExample(example);
|
|
||||||
}catch(Exception e){
|
|
||||||
JshException.readFail(logger, e);
|
|
||||||
}
|
|
||||||
if (dataList != null) {
|
|
||||||
for (AccountHead accountHead : dataList) {
|
|
||||||
if(accountHead.getChangeAmount()!=null) {
|
|
||||||
accountSum = accountSum.add(accountHead.getChangeAmount());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (DataAccessException e) {
|
|
||||||
logger.error(">>>>>>>>>查找进销存信息异常", e);
|
|
||||||
}
|
|
||||||
return accountSum;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -383,13 +306,13 @@ public class AccountService {
|
|||||||
AccountHeadExample example = new AccountHeadExample();
|
AccountHeadExample example = new AccountHeadExample();
|
||||||
AccountHeadExample.Criteria criteria = example.createCriteria();
|
AccountHeadExample.Criteria criteria = example.createCriteria();
|
||||||
if (!timeStr.equals("")) {
|
if (!timeStr.equals("")) {
|
||||||
Date bTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
|
||||||
Date eTime = StringUtil.getDateByString(Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME, null);
|
|
||||||
Date mTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
|
||||||
if (type.equals("month")) {
|
if (type.equals("month")) {
|
||||||
|
Date bTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
||||||
|
Date eTime = StringUtil.getDateByString(Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME, null);
|
||||||
criteria.andBillTimeGreaterThanOrEqualTo(bTime).andBillTimeLessThanOrEqualTo(eTime)
|
criteria.andBillTimeGreaterThanOrEqualTo(bTime).andBillTimeLessThanOrEqualTo(eTime)
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||||
} else if (type.equals("date")) {
|
} else if (type.equals("date")) {
|
||||||
|
Date mTime = StringUtil.getDateByString(timeStr, null);
|
||||||
criteria.andBillTimeLessThanOrEqualTo(mTime)
|
criteria.andBillTimeLessThanOrEqualTo(mTime)
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||||
}
|
}
|
||||||
@@ -446,14 +369,14 @@ public class AccountService {
|
|||||||
DepotHeadExample example = new DepotHeadExample();
|
DepotHeadExample example = new DepotHeadExample();
|
||||||
DepotHeadExample.Criteria criteria = example.createCriteria();
|
DepotHeadExample.Criteria criteria = example.createCriteria();
|
||||||
if (!timeStr.equals("")) {
|
if (!timeStr.equals("")) {
|
||||||
Date bTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
|
||||||
Date eTime = StringUtil.getDateByString(Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME, null);
|
|
||||||
Date mTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
|
||||||
if (type.equals("month")) {
|
if (type.equals("month")) {
|
||||||
|
Date bTime = StringUtil.getDateByString(Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME, null);
|
||||||
|
Date eTime = StringUtil.getDateByString(Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME, null);
|
||||||
criteria.andAccountIdListLike("%" +id.toString() + "%")
|
criteria.andAccountIdListLike("%" +id.toString() + "%")
|
||||||
.andOperTimeGreaterThanOrEqualTo(bTime).andOperTimeLessThanOrEqualTo(eTime)
|
.andOperTimeGreaterThanOrEqualTo(bTime).andOperTimeLessThanOrEqualTo(eTime)
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||||
} else if (type.equals("date")) {
|
} else if (type.equals("date")) {
|
||||||
|
Date mTime = StringUtil.getDateByString(timeStr, null);
|
||||||
criteria.andAccountIdListLike("%" +id.toString() + "%")
|
criteria.andAccountIdListLike("%" +id.toString() + "%")
|
||||||
.andOperTimeLessThanOrEqualTo(mTime)
|
.andOperTimeLessThanOrEqualTo(mTime)
|
||||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||||
@@ -476,8 +399,6 @@ public class AccountService {
|
|||||||
String accountIdList = depotHead.getAccountIdList();
|
String accountIdList = depotHead.getAccountIdList();
|
||||||
String accountMoneyList = depotHead.getAccountMoneyList();
|
String accountMoneyList = depotHead.getAccountMoneyList();
|
||||||
if(StringUtil.isNotEmpty(accountIdList) && StringUtil.isNotEmpty(accountMoneyList)) {
|
if(StringUtil.isNotEmpty(accountIdList) && StringUtil.isNotEmpty(accountMoneyList)) {
|
||||||
accountIdList = accountIdList.replace("[", "").replace("]", "").replace("\"", "");
|
|
||||||
accountMoneyList = accountMoneyList.replace("[", "").replace("]", "").replace("\"", "");
|
|
||||||
String[] aList = accountIdList.split(",");
|
String[] aList = accountIdList.split(",");
|
||||||
String[] amList = accountMoneyList.split(",");
|
String[] amList = accountMoneyList.split(",");
|
||||||
for (int i = 0; i < aList.length; i++) {
|
for (int i = 0; i < aList.length; i++) {
|
||||||
@@ -567,19 +488,25 @@ public class AccountService {
|
|||||||
try{
|
try{
|
||||||
List<AccountVo4List> list = accountMapperEx.selectByConditionAccount(name, serialNo, null, offset, rows);
|
List<AccountVo4List> list = accountMapperEx.selectByConditionAccount(name, serialNo, null, offset, rows);
|
||||||
String timeStr = Tools.getCurrentMonth();
|
String timeStr = Tools.getCurrentMonth();
|
||||||
|
String bTime = Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME;
|
||||||
|
String eTime = Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME;
|
||||||
Boolean forceFlag = systemConfigService.getForceApprovalFlag();
|
Boolean forceFlag = systemConfigService.getForceApprovalFlag();
|
||||||
if (null != list) {
|
if (null != list) {
|
||||||
for (AccountVo4List al : list) {
|
for (AccountVo4List al : list) {
|
||||||
DecimalFormat df = new DecimalFormat(".##");
|
DecimalFormat df = new DecimalFormat(".##");
|
||||||
BigDecimal thisMonthAmount = getAccountSum(al.getId(), timeStr, "month", forceFlag).add(getAccountSumByHead(al.getId(), timeStr, "month", forceFlag))
|
BigDecimal thisMonthAmount = getAccountSum(al.getId(), bTime, eTime, forceFlag)
|
||||||
.add(getAccountSumByDetail(al.getId(), timeStr, "month", forceFlag)).add(getManyAccountSum(al.getId(), timeStr, "month", forceFlag));
|
.add(getAccountSumByHead(al.getId(), bTime, eTime, forceFlag))
|
||||||
|
.add(getAccountSumByDetail(al.getId(), timeStr, "month", forceFlag))
|
||||||
|
.add(getManyAccountSum(al.getId(), timeStr, "month", forceFlag));
|
||||||
String thisMonthAmountFmt = "0";
|
String thisMonthAmountFmt = "0";
|
||||||
if ((thisMonthAmount.compareTo(BigDecimal.ZERO))!=0) {
|
if ((thisMonthAmount.compareTo(BigDecimal.ZERO))!=0) {
|
||||||
thisMonthAmountFmt = df.format(thisMonthAmount);
|
thisMonthAmountFmt = df.format(thisMonthAmount);
|
||||||
}
|
}
|
||||||
al.setThisMonthAmount(thisMonthAmountFmt); //本月发生额
|
al.setThisMonthAmount(thisMonthAmountFmt); //本月发生额
|
||||||
BigDecimal currentAmount = getAccountSum(al.getId(), "", "month", forceFlag).add(getAccountSumByHead(al.getId(), "", "month", forceFlag))
|
BigDecimal currentAmount = getAccountSum(al.getId(), null, null, forceFlag)
|
||||||
.add(getAccountSumByDetail(al.getId(), "", "month", forceFlag)).add(getManyAccountSum(al.getId(), "", "month", forceFlag)) .add(al.getInitialAmount()) ;
|
.add(getAccountSumByHead(al.getId(), null, null, forceFlag))
|
||||||
|
.add(getAccountSumByDetail(al.getId(), "", "month", forceFlag))
|
||||||
|
.add(getManyAccountSum(al.getId(), "", "month", forceFlag)) .add(al.getInitialAmount()) ;
|
||||||
al.setCurrentAmount(currentAmount);
|
al.setCurrentAmount(currentAmount);
|
||||||
resList.add(al);
|
resList.add(al);
|
||||||
}
|
}
|
||||||
@@ -605,15 +532,21 @@ public class AccountService {
|
|||||||
try {
|
try {
|
||||||
List<Account> list = getAccountByParam(name, serialNo);
|
List<Account> list = getAccountByParam(name, serialNo);
|
||||||
String timeStr = Tools.getCurrentMonth();
|
String timeStr = Tools.getCurrentMonth();
|
||||||
|
String bTime = Tools.firstDayOfMonth(timeStr) + BusinessConstants.DAY_FIRST_TIME;
|
||||||
|
String eTime = Tools.lastDayOfMonth(timeStr) + BusinessConstants.DAY_LAST_TIME;
|
||||||
BigDecimal allMonthAmount = BigDecimal.ZERO;
|
BigDecimal allMonthAmount = BigDecimal.ZERO;
|
||||||
BigDecimal allCurrentAmount = BigDecimal.ZERO;
|
BigDecimal allCurrentAmount = BigDecimal.ZERO;
|
||||||
Boolean forceFlag = systemConfigService.getForceApprovalFlag();
|
Boolean forceFlag = systemConfigService.getForceApprovalFlag();
|
||||||
if (null != list && null !=timeStr) {
|
if (null != list && null !=timeStr) {
|
||||||
for (Account a : list) {
|
for (Account a : list) {
|
||||||
BigDecimal monthAmount = getAccountSum(a.getId(), timeStr, "month", forceFlag).add(getAccountSumByHead(a.getId(), timeStr, "month", forceFlag))
|
BigDecimal monthAmount = getAccountSum(a.getId(), bTime, eTime, forceFlag)
|
||||||
.add(getAccountSumByDetail(a.getId(), timeStr, "month", forceFlag)).add(getManyAccountSum(a.getId(), timeStr, "month", forceFlag));
|
.add(getAccountSumByHead(a.getId(), bTime, eTime, forceFlag))
|
||||||
BigDecimal currentAmount = getAccountSum(a.getId(), "", "month", forceFlag).add(getAccountSumByHead(a.getId(), "", "month", forceFlag))
|
.add(getAccountSumByDetail(a.getId(), timeStr, "month", forceFlag))
|
||||||
.add(getAccountSumByDetail(a.getId(), "", "month", forceFlag)).add(getManyAccountSum(a.getId(), "", "month", forceFlag)).add(a.getInitialAmount());
|
.add(getManyAccountSum(a.getId(), timeStr, "month", forceFlag));
|
||||||
|
BigDecimal currentAmount = getAccountSum(a.getId(), null, null, forceFlag)
|
||||||
|
.add(getAccountSumByHead(a.getId(), null, null, forceFlag))
|
||||||
|
.add(getAccountSumByDetail(a.getId(), "", "month", forceFlag))
|
||||||
|
.add(getManyAccountSum(a.getId(), "", "month", forceFlag)).add(a.getInitialAmount());
|
||||||
allMonthAmount = allMonthAmount.add(monthAmount);
|
allMonthAmount = allMonthAmount.add(monthAmount);
|
||||||
allCurrentAmount = allCurrentAmount.add(currentAmount);
|
allCurrentAmount = allCurrentAmount.add(currentAmount);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,6 +74,42 @@
|
|||||||
and ifnull(delete_flag,'0') !='1'
|
and ifnull(delete_flag,'0') !='1'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getAccountSum" resultType="java.math.BigDecimal">
|
||||||
|
select ifnull(sum(dh.change_amount),0) from jsh_depot_head dh
|
||||||
|
where 1=1 and dh.pay_type != '预付款'
|
||||||
|
<if test="accountId != null">
|
||||||
|
and dh.account_id = #{accountId}
|
||||||
|
</if>
|
||||||
|
<if test="beginTime != null">
|
||||||
|
and dh.oper_time >= #{beginTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null">
|
||||||
|
and dh.oper_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
<if test="forceFlag">
|
||||||
|
and dh.status = '1'
|
||||||
|
</if>
|
||||||
|
and ifnull(dh.delete_flag,'0') !='1'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="getAccountSumByHead" resultType="java.math.BigDecimal">
|
||||||
|
select ifnull(sum(ah.change_amount),0) from jsh_account_head ah
|
||||||
|
where 1=1
|
||||||
|
<if test="accountId != null">
|
||||||
|
and ah.account_id = #{accountId}
|
||||||
|
</if>
|
||||||
|
<if test="beginTime != null">
|
||||||
|
and ah.bill_time >= #{beginTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null">
|
||||||
|
and ah.bill_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
<if test="forceFlag">
|
||||||
|
and ah.status = '1'
|
||||||
|
</if>
|
||||||
|
and ifnull(ah.delete_flag,'0') !='1'
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="findAccountInOutList" parameterType="com.jsh.erp.datasource.entities.AccountExample" resultMap="ResultInOutList">
|
<select id="findAccountInOutList" parameterType="com.jsh.erp.datasource.entities.AccountExample" resultMap="ResultInOutList">
|
||||||
<!--主表出入库涉及的账户 -->
|
<!--主表出入库涉及的账户 -->
|
||||||
select dh.number,concat(dh.sub_type,dh.type) as newType, 'bill' as fromType, s.supplier,dh.change_amount,date_format(dh.oper_time,'%Y-%m-%d %H:%i:%S') as oTime,'' as AList,'' as AMList
|
select dh.number,concat(dh.sub_type,dh.type) as newType, 'bill' as fromType, s.supplier,dh.change_amount,date_format(dh.oper_time,'%Y-%m-%d %H:%i:%S') as oTime,'' as AList,'' as AMList
|
||||||
|
|||||||
Reference in New Issue
Block a user