winter 1 год назад
Родитель
Сommit
7a6d55a934
4 измененных файлов: 111 добавлений и 80 удалений
  1. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java
  2. +11
    -11
      mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java
  3. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxRentContractYearsSumVo.java
  4. +97
    -68
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java Просмотреть файл

@@ -163,7 +163,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/logout", "authc");

filterChainDefinitionMap.put("/**", "corsFilter,token,authc");
// filterChainDefinitionMap.put("/**", "anon");
filterChainDefinitionMap.put("/**", "anon");


shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);


+ 11
- 11
mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java Просмотреть файл

@@ -52,13 +52,13 @@ public class BaseController {
});
}
public MallUserInfo getUser(){
MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
// MallUserInfo user = new MallUserInfo();
// user.setId(321127266275430400L);
// user.setName("alitest");
// user.setTenantId("789");
// user.setParentTenantId(null);
// user.setIsAdmin(1);
// MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
MallUserInfo user = new MallUserInfo();
user.setId(321127266275430400L);
user.setName("alitest");
user.setTenantId("789");
user.setParentTenantId(null);
user.setIsAdmin(1);
return user;
}

@@ -80,10 +80,10 @@ public class BaseController {
*/
public TenantEntity getTenantInfo(){
Session session = SecurityUtils.getSubject().getSession();
String tenantId = (String)session.getAttribute(UserSession.tenantId);
String parentTenantId = (String)session.getAttribute(UserSession.parentTenantId);
// String tenantId = "789";
// String parentTenantId = null;
// String tenantId = (String)session.getAttribute(UserSession.tenantId);
// String parentTenantId = (String)session.getAttribute(UserSession.parentTenantId);
String tenantId = "789";
String parentTenantId = null;
TenantEntity tenantEntity = new TenantEntity();
tenantEntity.setTenantId(tenantId);
tenantEntity.setParentTenantId(parentTenantId);


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxRentContractYearsSumVo.java Просмотреть файл

@@ -33,4 +33,6 @@ public class WxRentContractYearsSumVo implements Serializable {
owe = new BigDecimal(totalRevenue).subtract(new BigDecimal(billReceivePay)).toPlainString();
return owe;
}
private List<WxAllBill> billList;
}

+ 97
- 68
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Просмотреть файл

@@ -2705,11 +2705,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
sale.setUpdateTime(new Date());
wxRentContractRevenueSalesMapper.insert(sale);
}
return handleBills(sb,rentcontract,propertyContractId,needpay,rentBill,propertyBill,rentPriceArrs,bussinessManagerPriceArrs,operationManagerPriceArrs,propertyContractArrs,yearIndex);
return handleBills(sb,rentcontract,propertyContractId,needpay,rentBill,null,null,EnumBillExtraCreateFrom.RNET_REVENUE_SALES,propertyBill,rentPriceArrs,bussinessManagerPriceArrs,operationManagerPriceArrs,propertyContractArrs,yearIndex);
}
private WxRentContractRevenueSetSalesVo handleBills(StringBuffer sb,WxRentContract rentcontract,Long propertyContractId, String needpay,WxAllBill rentBill,WxAllBill propertyBill,
String[] rentPriceArrs,String[] bussinessManagerPriceArrs,String[] operationManagerPriceArrs,String[] propertyContractArrs,int yearIndex) {
private WxRentContractRevenueSetSalesVo handleBills(StringBuffer sb,WxRentContract rentcontract,Long propertyContractId, String needpay,WxAllBill rentBill,Date rentStartDate,Date rentEndDate,
EnumBillExtraCreateFrom createFrom,WxAllBill propertyBill,String[] rentPriceArrs,String[] bussinessManagerPriceArrs,String[] operationManagerPriceArrs,String[] propertyContractArrs,int yearIndex) {
//计算资金分摊的比例 租金,商业管理费,营业管理费,物业费。每个科目税点不一样,这样分摊能降低成本
String[] moneyShareRates = new String[4];
@@ -2742,30 +2742,34 @@ public class WxRentContractServiceImpl implements WxRentContractService {
String propertyRate = moneyShareRates[3];
//更新账单费用
String rentneedpay = new BigDecimal(needpay).multiply(new BigDecimal(rentRate)).setScale(rentcontract.getDecimalSize(),BigDecimal.ROUND_HALF_UP).toPlainString();
sb.append("租金原合同租金金额:"+rentBill.getNeedPay()+"元,计算之后为:"+rentneedpay+"元。");
rentBill.setMoneyChangeDetail(sb.toString());
rentBill.setReceivePay(rentneedpay);
rentBill.setBillRemark("设置销售额,自动计算");
rentBill.setUpdatetime(new Date());
if (new BigDecimal(rentBill.getOwe()).compareTo(new BigDecimal(0)) < 0 ) {
rentBill.setStatus(EnumBillStatus.STOP_TO_SETTLE.getCode());
if (null != rentBill) {
sb.append("租金原合同租金金额:"+rentBill.getNeedPay()+"元,计算之后为:"+rentneedpay+"元。");
rentBill.setMoneyChangeDetail(sb.toString());
rentBill.setReceivePay(rentneedpay);
rentBill.setBillRemark("设置销售额,自动计算");
rentBill.setUpdatetime(new Date());
if (new BigDecimal(rentBill.getOwe()).compareTo(new BigDecimal(0)) < 0 ) {
rentBill.setStatus(EnumBillStatus.STOP_TO_SETTLE.getCode());
}else {
//rentBill.setStatus(EnumBillStatus.PAID.getCode());
}
wxAllBillMapper.updateById(rentBill);
}else {
//rentBill.setStatus(EnumBillStatus.PAID.getCode());
rentBill = generateRentBill(rentcontract,rentneedpay,rentRate,rentStartDate,rentEndDate,createFrom);
}
wxAllBillMapper.updateById(rentBill);
//物业账单应收就改为0,因为金额已经合并了
propertyBill = generatePropertyBill(rentcontract, propertyContractId, rentBill, needpay, propertyRate);
WxAllBill propeBill = generatePropertyBill(rentcontract, propertyContractId, rentBill,propertyBill, needpay, propertyRate,createFrom);
WxAllBill bmbill = generateManageBill(rentcontract, rentBill, needpay, bussinessRate, EnumBillAllType.RENT_BUSSINESS_MANAGE);
WxAllBill bmbill = generateManageBill(rentcontract, rentBill, needpay, bussinessRate, EnumBillAllType.RENT_BUSSINESS_MANAGE,createFrom);
WxAllBill ombill = generateManageBill(rentcontract, rentBill, needpay, operaterRate, EnumBillAllType.RENT_OPERATION_MANAGE);
WxAllBill ombill = generateManageBill(rentcontract, rentBill, needpay, operaterRate, EnumBillAllType.RENT_OPERATION_MANAGE,createFrom);
WxRentContractRevenueSetSalesVo vo = new WxRentContractRevenueSetSalesVo();
vo.setTotal(needpay);
List<WxAllBill> blist = new ArrayList<WxAllBill>();
blist.add(rentBill);
if (null != propertyBill) {
blist.add(propertyBill);
if (null != propeBill) {
blist.add(propeBill);
}
if (null != bmbill) {
blist.add(bmbill);
@@ -2777,7 +2781,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return vo;
}
private WxAllBill generateManageBill(WxRentContract rentcontract,WxAllBill rentBill,String total,String rate,EnumBillAllType type) {
private WxAllBill generateManageBill(WxRentContract rentcontract,WxAllBill rentBill,String total,String rate,EnumBillAllType type,EnumBillExtraCreateFrom createFrom) {
//商业管理费,营运管理费应收改为0,因为金额已经合并了
WxAllBill bussinessmanageBill = new WxAllBill();
bussinessmanageBill.updateTenantInfo(rentcontract);
@@ -2822,8 +2826,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
bmbill.setStarttime(rentBill.getStarttime());
bmbill.setEndtime(rentBill.getEndtime());
bmbill.setStatus(EnumBillStatus.WAIT_PAY.getCode());
bmbill.setBillRemark("录入销售额,自动计算创建");
bmbill.setExtraCreateFrom(EnumBillExtraCreateFrom.RNET_REVENUE_SALES.getCode());
bmbill.setBillRemark(createFrom.getMessage()+",自动计算创建");
bmbill.setExtraCreateFrom(createFrom.getCode());
bmbill.setMoneyChangeDetail("自动计算创建,应收金额为:"+bussinessmoney+"元,");
wxAllBillMapper.insert(bmbill);
@@ -2831,33 +2835,22 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return bmbill;
}
private WxAllBill generatePropertyBill(WxRentContract rentcontract,Long propertyContractId,WxAllBill rentBill,String total,String rate) {
//商业管理费,营运管理费应收改为0,因为金额已经合并了
WxAllBill propertyBillq = new WxAllBill();
propertyBillq.updateTenantInfo(rentcontract);
propertyBillq.setPropertyContractId(propertyContractId);
propertyBillq.setBillType(EnumBillAllType.PROPERTY.getCode());
propertyBillq.setEnergyFeesId(EnumBillAllType.PROPERTY.getEnergyFeesId());
propertyBillq.setIsPreview(EnumYesOrNo.NO.getCode());
propertyBillq.setStarttimeEqual(rentBill.getStarttime());
propertyBillq.setEndtimeEqual(rentBill.getEndtime());
List<WxAllBill> bmbillList = wxAllBillMapper.findList(propertyBillq);
WxAllBill bmbill = null;
private WxAllBill generatePropertyBill(WxRentContract rentcontract,Long propertyContractId,WxAllBill rentBill,WxAllBill propertyBill,String total,String rate,EnumBillExtraCreateFrom createFrom) {
String bussinessmoney = new BigDecimal(total).multiply(new BigDecimal(rate)).setScale(rentcontract.getDecimalSize(),BigDecimal.ROUND_HALF_UP).toPlainString();
if (null != bmbillList && bmbillList.size() > 0 ) {
bmbill = bmbillList.get(0);
bmbill.setMoneyChangeDetail("原合同商业管理费金额:"+bmbill.getNeedPay()+"元,总计分摊比率为:"+rate+",计算调整为:"+bussinessmoney+"元。");
bmbill.setReceivePay(bussinessmoney);
bmbill.setBillRemark("设置销售额,自动计算");
if (new BigDecimal(bmbill.getOwe()).compareTo(new BigDecimal(0)) < 0 ) {
bmbill.setStatus(EnumBillStatus.STOP_TO_SETTLE.getCode());
if (null != propertyBill ) {
propertyBill.setMoneyChangeDetail("原合同商业管理费金额:"+propertyBill.getNeedPay()+"元,总计分摊比率为:"+rate+",计算调整为:"+bussinessmoney+"元。");
propertyBill.setReceivePay(bussinessmoney);
propertyBill.setBillRemark("设置销售额,自动计算");
if (new BigDecimal(propertyBill.getOwe()).compareTo(new BigDecimal(0)) < 0 ) {
propertyBill.setStatus(EnumBillStatus.STOP_TO_SETTLE.getCode());
}else {
//bmbill.setStatus(EnumBillStatus.PAID.getCode());
}
bmbill.setUpdatetime(new Date());
wxAllBillMapper.updateById(bmbill);
propertyBill.setUpdatetime(new Date());
wxAllBillMapper.updateById(propertyBill);
return propertyBill;
}else {
bmbill = new WxAllBill();
WxAllBill bmbill = new WxAllBill();
final IdWorker idWorker = IdWorker.get();
bmbill.setId(idWorker.nextId());
bmbill.updateTenantInfo(rentcontract);
@@ -2876,12 +2869,40 @@ public class WxRentContractServiceImpl implements WxRentContractService {
bmbill.setStarttime(rentBill.getStarttime());
bmbill.setEndtime(rentBill.getEndtime());
bmbill.setStatus(EnumBillStatus.WAIT_PAY.getCode());
bmbill.setBillRemark("录入销售额,自动计算创建");
bmbill.setExtraCreateFrom(EnumBillExtraCreateFrom.RNET_REVENUE_SALES.getCode());
bmbill.setBillRemark(createFrom.getMessage()+",自动计算创建");
bmbill.setExtraCreateFrom(createFrom.getCode());
bmbill.setMoneyChangeDetail("自动计算创建,应收金额为:"+bussinessmoney+"元,");
wxAllBillMapper.insert(bmbill);
return bmbill;
}
}
private WxAllBill generateRentBill(WxRentContract rentcontract,String money,String rate,Date starttime,Date endtime,EnumBillExtraCreateFrom createFrom) {
WxAllBill bmbill = new WxAllBill();
final IdWorker idWorker = IdWorker.get();
bmbill.setId(idWorker.nextId());
bmbill.updateTenantInfo(rentcontract);
bmbill.setBillType(EnumBillAllType.RENT.getCode());
bmbill.setEnergyFeesId(EnumBillAllType.RENT.getEnergyFeesId());
bmbill.setRentContractId(rentcontract.getId());
bmbill.setIsPreview(EnumYesOrNo.NO.getCode());
bmbill.setMerchantId(rentcontract.getMerchantId());
bmbill.setRentShopType(rentcontract.getRentShopType());
bmbill.setCreatetime(new Date());
bmbill.setUpdatetime(new Date());
bmbill.setPriceDetail("");
bmbill.setNeedPay(money);
bmbill.setReceivePay(money);
bmbill.setPay("0");
bmbill.setStarttime(starttime);
bmbill.setEndtime(endtime);
bmbill.setStatus(EnumBillStatus.WAIT_PAY.getCode());
bmbill.setBillRemark(createFrom.getMessage()+",自动计算创建");
bmbill.setExtraCreateFrom(createFrom.getCode());
bmbill.setMoneyChangeDetail("自动计算创建,比例为"+rate+",计算应收金额为:"+money+"元,");
wxAllBillMapper.insert(bmbill);
return bmbill;
}
@@ -2977,33 +2998,41 @@ public class WxRentContractServiceImpl implements WxRentContractService {
vo.setBillReceivePay(receivepay.toPlainString());
if ( new BigDecimal(vo.getOwe()).compareTo(new BigDecimal(0)) > 0) {
//增加一个账单
WxAllBill createBillq = new WxAllBill();
createBillq.updateTenantInfo(rentcontract);
final IdWorker idWorker = IdWorker.get();
createBillq.setId(idWorker.nextId());
createBillq.setMerchantId(rentcontract.getMerchantId());
createBillq.setRentShopType(rentcontract.getRentShopType());
createBillq.setCreatetime(new Date());
createBillq.setUpdatetime(new Date());
createBillq.setPriceDetail("年度汇算销售额:"+sum.toPlainString()+",应扣点金额:"+jumpRevenuePay.toPlainString()+",账单总金额:"+receivepay.toPlainString()+".差额:"+vo.getOwe());
createBillq.setNeedPay(vo.getOwe());
createBillq.setReceivePay(vo.getOwe());
createBillq.setPay("0");
createBillq.setBillType(EnumBillAllType.RENT.getCode());
createBillq.setStarttime(rentcontract.getYearsBegin());
createBillq.setEndtime(DateUtils.getDayEnd(rentcontract.getYearsBegin()));
createBillq.setStatus(EnumBillStatus.WAIT_PAY.getCode());
createBillq.setEnergyFeesId(EnumBillAllType.RENT.getEnergyFeesId());
createBillq.setBillRemark("扣点年度汇算自动生成");
createBillq.setIsPreview(EnumYesOrNo.NO.getCode());
createBillq.setRentContractId(rentcontract.getId());
createBillq.setExtraCreateFrom(EnumBillExtraCreateFrom.RNET_TIAODIAN_HUISUAN.getCode());
wxAllBillMapper.insert(createBillq);
WxRentContractRevenueSetSalesVo svo = handelHuiSuanBills(rentcontract,vo.getOwe());
vo.setBillList(svo.getBillList());
}
return vo;
}
private WxRentContractRevenueSetSalesVo handelHuiSuanBills(WxRentContract rentcontract,String owe) {
//计算每一年的基数
List<String[]> priceArrs = WxRentContractHelper.calcuteRentAndRevenuePrice(rentcontract);
String[] rentPriceArrs = priceArrs.get(0);
String[] revenuePriceArrs = priceArrs.get(1);
//计算商业管理费
String[] bussinessManagerPriceArrs = WxRentContractHelper.calcuteBussinessManagementFee(rentcontract);
//计算运营管理费
String[] operationManagerPriceArrs = WxRentContractHelper.calcuteOperatingManagementFee(rentcontract);
//物业费单价
String[] propertyContractArrs = null;
List<Date> yearList = this.getYearList(rentPriceArrs.length, 12, rentcontract.getRentalStartDate(),null);
int yearIndex = 0;
for( int i = 0 ; i < yearList.size() ; i ++) {
Date yearEndDate = yearList.get(i);
if (rentcontract.getYearsBegin().before(yearEndDate) || rentcontract.getYearsEnd().equals(yearEndDate)) {
yearIndex = i-1;
break;
}
}
if (yearIndex <= 0 ) {
yearIndex = 0;
}
StringBuffer sb = new StringBuffer("");
return handleBills(sb,rentcontract,null,owe,null,rentcontract.getYearsBegin(),rentcontract.getYearsBegin(),EnumBillExtraCreateFrom.RNET_TIAODIAN_HUISUAN,null,rentPriceArrs,bussinessManagerPriceArrs,operationManagerPriceArrs,propertyContractArrs,yearIndex);
}
@Override
public List<WxRentContractRevenueJump> findJumpList(WxRentContractRevenueJump jump) {


Загрузка…
Отмена
Сохранить