Commit f23c9971 by 杨清松

费用调整和银行入账相关接口

parent f723bc5e
......@@ -21,6 +21,7 @@ dependencies {
compile project(":inz.basis")
compile project(":xyst.dinas.biz")
compile project(":xyst.dinas.project")
compile project(":xyst.dinas.contract")
testCompile lib.amino_boot_web
......
......@@ -2,7 +2,17 @@ package com.xyst.dinas.finance.config;
import org.springframework.context.annotation.Bean;
import com.xyst.dinas.finance.dao.BankRechargeDetailDao;
import com.xyst.dinas.finance.dao.ExpenseAdjustDao;
import com.xyst.dinas.finance.internal.dao.BankRechargeDetailDaoImpl;
import com.xyst.dinas.finance.internal.dao.ExpenseAdjustDaoImpl;
import com.xyst.dinas.finance.internal.service.BankRechargeDetailServiceImpl;
import com.xyst.dinas.finance.internal.service.ExpenseAdjustServiceImpl;
import com.xyst.dinas.finance.processor.FinanceRefundProcessor;
import com.xyst.dinas.finance.service.BankRechargeDetailService;
import com.xyst.dinas.finance.service.ExpenseAdjustService;
import com.xyst.dinas.finance.web.BankRechargeDetailController;
import com.xyst.dinas.finance.web.ExpenseAdjustController;
import com.xyst.dinas.finance.web.RefundController;
public class FinanceConfiguration {
......@@ -17,6 +27,35 @@ public class FinanceConfiguration {
return new FinanceRefundProcessor();
}
@Bean
public ExpenseAdjustController expenseAdjustController() {
return new ExpenseAdjustController();
}
@Bean
public ExpenseAdjustService expenseAdjustService() {
return new ExpenseAdjustServiceImpl();
}
@Bean
public ExpenseAdjustDao expenseAdjustDao() {
return new ExpenseAdjustDaoImpl();
}
@Bean
public BankRechargeDetailController bankRechargeDetailController() {
return new BankRechargeDetailController();
}
@Bean
public BankRechargeDetailService bankRechargeDetailService() {
return new BankRechargeDetailServiceImpl();
}
@Bean
public BankRechargeDetailDao bankRechargeDetailDao() {
return new BankRechargeDetailDaoImpl();
}
}
package com.xyst.dinas.finance.constant;
public class BankRechargeDetailConstant {
//银行充值明细
public static final String ENTITY = "com.xyst.dinas.finance.datamodel.BankRechargeDetail";
}
package com.xyst.dinas.finance.constant;
public interface ExpenseAdjustConstant {
//费用调整
public static final String ENTITY = "com.xyst.dinas.finance.datamodel.ExpenseAdjust";
}
package com.xyst.dinas.finance.dao;
import com.beecode.bcp.type.KObject;
public interface BankRechargeDetailDao {
void save(KObject bankRechargeDetail);
}
package com.xyst.dinas.finance.dao;
import com.beecode.bcp.type.KObject;
public interface ExpenseAdjustDao {
void save(KObject expenseAdjust);
}
package com.xyst.dinas.finance.internal.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateOperations;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.finance.dao.BankRechargeDetailDao;
public class BankRechargeDetailDaoImpl implements BankRechargeDetailDao {
@Autowired
private HibernateOperations template;
@Override
public void save(KObject bankRechargeDetail) {
template.save(bankRechargeDetail);
}
}
package com.xyst.dinas.finance.internal.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateOperations;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.finance.dao.ExpenseAdjustDao;
public class ExpenseAdjustDaoImpl implements ExpenseAdjustDao{
@Autowired
private HibernateOperations template;
@Override
public void save(KObject expenseAdjust) {
template.save(expenseAdjust);
}
}
package com.xyst.dinas.finance.internal.service;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.amino.core.Amino;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.finance.constant.BankRechargeDetailConstant;
import com.xyst.dinas.finance.dao.BankRechargeDetailDao;
import com.xyst.dinas.finance.service.BankRechargeDetailService;
public class BankRechargeDetailServiceImpl implements BankRechargeDetailService {
@Autowired
private BankRechargeDetailDao bankRechargeDetailDao;
@Override
@Transactional
public Object createRechargeDetail(JSONObject jsonObject) {
try {
KClass bankRechargeDetailClass = Amino.getApplicationMetadataContext().getBean(BankRechargeDetailConstant.ENTITY, KClass.class);
KObject bankRechargeDetail = bankRechargeDetailClass.newInstance();
bankRechargeDetail.set("bankName", jsonObject.getString("bankName"));
bankRechargeDetail.set("rechargeAmount", jsonObject.getBigDecimal("rechargeAmount"));
bankRechargeDetail.set("rechargeStatus", "STAY_ENTER_ACCOUNT"); //充值状态 待入账
bankRechargeDetail.set("paymentAccountNumber", jsonObject.getString("paymentAccountNumber"));
bankRechargeDetail.set("shroffAccountNumber", jsonObject.getString("shroffAccountNumber"));
bankRechargeDetail.set("remark", jsonObject.getString("remark"));
bankRechargeDetailDao.save(bankRechargeDetail);
return ResponseObj.success();
} catch (Exception e) {
e.printStackTrace();
return ResponseObj.error();
}
}
}
package com.xyst.dinas.finance.internal.service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.UUID;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.amino.core.Amino;
import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.contract.internal.dao.ContractDao;
import com.xyst.dinas.finance.constant.BankRechargeDetailConstant;
import com.xyst.dinas.finance.constant.ExpenseAdjustConstant;
import com.xyst.dinas.finance.dao.ExpenseAdjustDao;
import com.xyst.dinas.finance.service.ExpenseAdjustService;
public class ExpenseAdjustServiceImpl implements ExpenseAdjustService {
@Autowired
private ExpenseAdjustDao expenseAdjustDao;
@Autowired
private ContractDao contractDao;
@Override
@Transactional
public Object create(JSONObject jsonObject) {
try {
KClass expenseAdjustClass = Amino.getApplicationMetadataContext().getBean(ExpenseAdjustConstant.ENTITY, KClass.class);
//KObject expenseAdjust = expenseAdjustClass.newInstance();
KObject expenseAdjust = JSONObjectUtils.toObject(jsonObject.toString(), expenseAdjustClass);
expenseAdjust.set("creator", AminoContextHolder.getContext().getStaff());
expenseAdjust.set("createTime", new Date());
expenseAdjust.set("id", UUID.randomUUID());
//获取关联合同
UUID contractId = UUID.fromString(jsonObject.getJSONObject("contract").getString("id"));
KObject contract = contractDao.load(contractId);
if (jsonObject.getString("fundType").equals("ADVANCE")) { //预付款
contract.set("advanceBalance", contract.getBigDecimal("advanceBalance") == null ? new BigDecimal("0").add(jsonObject.getBigDecimal("expenseAdjustAmount")) : contract.getBigDecimal("advanceBalance").add(jsonObject.getBigDecimal("expenseAdjustAmount")));
} else if(jsonObject.getString("fundType").equals("DEPOSIT")) { //保证金
contract.set("depositBalance", contract.getBigDecimal("depositBalance") == null ? new BigDecimal("0").add(jsonObject.getBigDecimal("expenseAdjustAmount")) : contract.getBigDecimal("depositBalance").add(jsonObject.getBigDecimal("expenseAdjustAmount")));
}
contractDao.update(contract);
expenseAdjust.set("contract", contract);
expenseAdjustDao.save(expenseAdjust);
// if (!jsonObject.isNull("advanceAmount")) {
// //生成预付款调整
// expenseAdjust.set("id", UUID.randomUUID());
// expenseAdjust.set("fundType", "ADVANCE");
// expenseAdjust.set("expenseAdjustAmount", jsonObject.getBigDecimal("advanceAmount"));
// expenseAdjustDao.save(expenseAdjust);
// } else if (!jsonObject.isNull("depositAmount")) {
// //生成保证金调整
// expenseAdjust.set("id", UUID.randomUUID());
// expenseAdjust.set("fundType", "DEPOSIT");
// expenseAdjust.set("expenseAdjustAmount", jsonObject.getBigDecimal("depositAmount"));
// expenseAdjustDao.save(expenseAdjust);
// }
return ResponseObj.success();
} catch (Exception e) {
e.printStackTrace();
return ResponseObj.error();
}
}
}
package com.xyst.dinas.finance.service;
import org.json.JSONObject;
public interface BankRechargeDetailService {
Object createRechargeDetail(JSONObject jsonObject);
}
package com.xyst.dinas.finance.service;
import org.json.JSONObject;
public interface ExpenseAdjustService {
Object create(JSONObject jsonObject);
}
package com.xyst.dinas.finance.web;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.xyst.dinas.finance.service.BankRechargeDetailService;
/**
* 银行入账明细
*
* @author yangqingsong
* @date 2021年4月23日
*/
@RestController
public class BankRechargeDetailController {
@Autowired
private BankRechargeDetailService bankRechargeDetailService;
@ResponseBody
@RequestMapping(value = "/finance/bankRechargeDetail/createRechargeDetail", method = RequestMethod.POST, consumes = "application/json")
public Object createRechargeDetail(@RequestBody String body) {
JSONObject jsonObject = new JSONObject(body);
return bankRechargeDetailService.createRechargeDetail(jsonObject);
}
}
package com.xyst.dinas.finance.web;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.xyst.dinas.finance.service.BankRechargeDetailService;
import com.xyst.dinas.finance.service.ExpenseAdjustService;
/**
* 费用调整
*
* @author yangqingsong
* @date 2021年4月23日
*/
@RestController
public class ExpenseAdjustController {
@Autowired
private ExpenseAdjustService expenseAdjustService;
@ResponseBody
@RequestMapping(value = "/finance/expenseAdjust/create", method = RequestMethod.POST, consumes = "application/json")
public Object create(@RequestBody String body) {
JSONObject jsonObject = new JSONObject(body);
return expenseAdjustService.create(jsonObject);
}
}
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