Commit 52922144 by 杨清松

对账单相关接口更改

parent 07baabfb
......@@ -3,10 +3,12 @@ package com.xyst.dinas.finance.dao;
import java.util.List;
import java.util.UUID;
import org.json.JSONObject;
import com.beecode.bcp.type.KObject;
public interface StatementAccountDao {
List<KObject> queryStatementAccountByContractId(UUID contractId, String modelPath);
List<KObject> queryStatementAccountByContractId(JSONObject jsonObject, String modelPath);
}
package com.xyst.dinas.finance.internal.dao;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.query.Query;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateOperations;
import com.beecode.bcp.type.KObject;
import com.mchange.v2.c3p0.stmt.StatementCache;
import com.xyst.dinas.finance.constant.ArtificialRechargeConstant;
import com.xyst.dinas.finance.dao.StatementAccountDao;
public class StatementAccountDaoImpl implements StatementAccountDao{
......@@ -21,13 +24,44 @@ public class StatementAccountDaoImpl implements StatementAccountDao{
private HibernateOperations template;
@Override
public List<KObject> queryStatementAccountByContractId(UUID contractId, String modelPath) {
public List<KObject> queryStatementAccountByContractId(JSONObject jsonObject, String modelPath) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
StringBuilder hql = new StringBuilder("from " + modelPath + " where contract.id=:contractId ");
@SuppressWarnings("unchecked")
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + modelPath + " where contract.id=:contractId", KObject.class);
query.setParameter("contractId", contractId);
Calendar calendarStart = null;
Calendar calendarEnd = null;
try {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
if(!jsonObject.isNull("startDate") && !jsonObject.getString("startDate").equals("")){
calendarStart = Calendar.getInstance();
String startTime = jsonObject.getString("startDate");
Date start = format.parse(startTime);
calendarStart.setTime(start);
hql.append(" and createTime >=:startDate ");
}
if(!jsonObject.isNull("endDate") && !jsonObject.getString("endDate").equals("")){
String endTime = jsonObject.getString("endDate");
calendarEnd = Calendar.getInstance();
Date end = format.parse(endTime);
calendarEnd.setTime(end);
hql.append(" and createTime <=:endDate ");
}
} catch(Exception e){
e.printStackTrace();
}
Query<KObject> query = session.createQuery(hql.toString(), KObject.class);
query.setParameter("contractId", UUID.fromString(jsonObject.getString("contractId")));
if(!jsonObject.isNull("startDate") && !jsonObject.getString("startDate").equals("")){
query.setParameter("startDate", calendarStart.getTime());
}
if(!jsonObject.isNull("endDate") && !jsonObject.getString("endDate").equals("")){
query.setParameter("endDate", calendarEnd.getTime());
}
List<KObject> resultList = query.getResultList();
return resultList;
}
......
package com.xyst.dinas.finance.internal.service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.bcp.type.KObject;
......@@ -24,60 +28,80 @@ public class StatementAccountServiceImpl implements StatementAccountService{
private StatementAccountDao statementAccountDao;
@Override
public Object queryStatementAccountByContractId(UUID contractId) {
public Object queryStatementAccountByContractId(JSONObject jsonObject) {
try {
List<KObject> artificialRechargeList = statementAccountDao.queryStatementAccountByContractId(contractId, ArtificialRechargeConstant.ENTITY);
Map<String, Object> map = new HashMap<>();
List<KObject> artificialRechargeList = statementAccountDao.queryStatementAccountByContractId(jsonObject, ArtificialRechargeConstant.ENTITY);
List<StatementAccount> statementAccounts = new ArrayList<StatementAccount>();
//人工充值
BigDecimal advanceRechargeAmount = new BigDecimal("0"); //预付款充值
BigDecimal depositRechargeAmount = new BigDecimal("0"); //保证金充值
if (artificialRechargeList.size() > 0) {
for (int i = 0; i < artificialRechargeList.size(); i++) {
KObject kObject = artificialRechargeList.get(i);
StatementAccount statementAccount = new StatementAccount();
if (kObject.getString("fundType").equals(FundTypeEnum.ADVANCE.name())) { //预付款
statementAccount.setDealType("预付款充值");
advanceRechargeAmount = advanceRechargeAmount.add(kObject.getBigDecimal("rechargeAmount"));
} else if (kObject.getString("fundType").equals(FundTypeEnum.DEPOSIT.name())){
statementAccount.setDealType("保证金充值");
depositRechargeAmount = depositRechargeAmount.add(kObject.getBigDecimal("rechargeAmount"));
}
statementAccount.setDealAmount(kObject.getBigDecimal("rechargeAmount"));
statementAccount.setDealDate(kObject.getString("createTime"));
statementAccounts.add(statementAccount);
}
}
map.put("advanceRechargeAmount", advanceRechargeAmount);
map.put("depositRechargeAmount", depositRechargeAmount);
//退费
List<KObject> financeRefundList = statementAccountDao.queryStatementAccountByContractId(contractId, FinanceRefundConstant.ENTITY);
BigDecimal advanceFinanceRefundAmount = new BigDecimal("0"); //预付款退费
BigDecimal depositFinanceRefundAmount = new BigDecimal("0"); //保证金退费
List<KObject> financeRefundList = statementAccountDao.queryStatementAccountByContractId(jsonObject, FinanceRefundConstant.ENTITY);
if (financeRefundList.size() > 0) {
for (int i = 0; i < financeRefundList.size(); i++) {
KObject kObject = financeRefundList.get(i);
StatementAccount statementAccount = new StatementAccount();
if (kObject.getString("fundType").equals(FundTypeEnum.ADVANCE.name())) { //预付款
statementAccount.setDealType("预付款退费");
advanceFinanceRefundAmount = advanceFinanceRefundAmount.add(kObject.getBigDecimal("actualRefundAmount"));//实际退费金额
} else if (kObject.getString("fundType").equals(FundTypeEnum.DEPOSIT.name())){
statementAccount.setDealType("保证金退费");
depositFinanceRefundAmount = depositFinanceRefundAmount.add(kObject.getBigDecimal("actualRefundAmount"));
}
statementAccount.setDealAmount(kObject.getBigDecimal("applyRefundAmount"));
statementAccount.setDealAmount(kObject.getBigDecimal("actualRefundAmount"));
statementAccount.setDealDate(kObject.getString("createTime"));
statementAccounts.add(statementAccount);
}
}
map.put("advanceFinanceRefundAmount", advanceFinanceRefundAmount);
map.put("depositFinanceRefundAmount", depositFinanceRefundAmount);
//费用调整
List<KObject> expenseAdjustList = statementAccountDao.queryStatementAccountByContractId(contractId, ExpenseAdjustConstant.ENTITY);
BigDecimal advanceExpenseAdjustAmount = new BigDecimal("0"); //预付款费用调整
BigDecimal depositExpenseAdjustAmount = new BigDecimal("0"); //保证金费用调整
List<KObject> expenseAdjustList = statementAccountDao.queryStatementAccountByContractId(jsonObject, ExpenseAdjustConstant.ENTITY);
if (expenseAdjustList.size() > 0) {
for (int i = 0; i < expenseAdjustList.size(); i++) {
KObject kObject = expenseAdjustList.get(i);
StatementAccount statementAccount = new StatementAccount();
if (kObject.getString("fundType").equals(FundTypeEnum.ADVANCE.name())) { //预付款
statementAccount.setDealType("预付款费用调整");
advanceExpenseAdjustAmount = advanceExpenseAdjustAmount.add(kObject.getBigDecimal("expenseAdjustAmount"));
} else if (kObject.getString("fundType").equals(FundTypeEnum.DEPOSIT.name())){
statementAccount.setDealType("保证金费用调整");
depositExpenseAdjustAmount = depositExpenseAdjustAmount.add(kObject.getBigDecimal("expenseAdjustAmount"));
}
statementAccount.setDealAmount(kObject.getBigDecimal("expenseAdjustAmount"));
statementAccount.setDealDate(kObject.getString("createTime"));
statementAccounts.add(statementAccount);
}
}
map.put("advanceExpenseAdjustAmount", advanceFinanceRefundAmount);
map.put("depositExpenseAdjustAmount", depositExpenseAdjustAmount);
//销售
List<KObject> saleRecordList = statementAccountDao.queryStatementAccountByContractId(contractId, SalesRecordConstant.ENTITY);
BigDecimal salesAmount = new BigDecimal("0"); //销售总额
List<KObject> saleRecordList = statementAccountDao.queryStatementAccountByContractId(jsonObject, SalesRecordConstant.ENTITY);
if (saleRecordList.size() > 0) {
for (int i = 0; i < saleRecordList.size(); i++) {
KObject kObject = saleRecordList.get(i);
......@@ -86,9 +110,12 @@ public class StatementAccountServiceImpl implements StatementAccountService{
statementAccount.setDealAmount(kObject.getBigDecimal("amount"));
statementAccount.setDealDate(kObject.getString("createTime"));
statementAccounts.add(statementAccount);
salesAmount = salesAmount.add(kObject.getBigDecimal("amount"));
}
}
return ResponseObj.success("查询成功", statementAccounts);
map.put("salesAmount", salesAmount);
map.put("statementAccounts", statementAccounts);
return ResponseObj.success("查询成功", map);
} catch (Exception e) {
e.printStackTrace();
return ResponseObj.error();
......
......@@ -2,8 +2,10 @@ package com.xyst.dinas.finance.service;
import java.util.UUID;
import org.json.JSONObject;
public interface StatementAccountService {
Object queryStatementAccountByContractId(UUID fromString);
Object queryStatementAccountByContractId(JSONObject jsonObject);
}
......@@ -28,9 +28,9 @@ public class StatementAccountController {
private StatementAccountService statementAccountService;
@ResponseBody
@RequestMapping(value = "/finance/statementAccount/queryStatementAccountByContractId", method = RequestMethod.GET)
public Object queryStatementAccountByContractId(@RequestParam String contractId) {
return statementAccountService.queryStatementAccountByContractId(UUID.fromString(contractId));
@RequestMapping(value = "/sand/user/finance/statementAccount/queryStatementAccountByContractId", method = RequestMethod.POST)
public Object queryStatementAccountByContractId(@RequestBody String body) {
return statementAccountService.queryStatementAccountByContractId(new JSONObject(body));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment