|
|
|
@@ -28,6 +28,7 @@ import com.iformall.domain.po.WxRentContractFreePeriod; |
|
|
|
import com.iformall.domain.po.WxRentContractRevenueJump;
|
|
|
|
import com.iformall.domain.po.WxRentContractRevenueSales;
|
|
|
|
import com.iformall.domain.po.WxShop;
|
|
|
|
import com.iformall.domain.po.WxShopUsers;
|
|
|
|
import com.iformall.domain.po.base.TenantEntity;
|
|
|
|
import com.iformall.domain.vo.BillTimeVo;
|
|
|
|
import com.iformall.domain.vo.RatioVo;
|
|
|
|
@@ -61,6 +62,7 @@ import com.iformall.enums.EnumRentContractType; |
|
|
|
import com.iformall.enums.EnumRentDayPriceCalcute;
|
|
|
|
import com.iformall.enums.EnumRentShopType;
|
|
|
|
import com.iformall.enums.EnumRentStartType;
|
|
|
|
import com.iformall.enums.EnumShopUsersStatus;
|
|
|
|
import com.iformall.enums.EnumTradeDailyDateType;
|
|
|
|
import com.iformall.enums.EnumYesOrNo;
|
|
|
|
import com.iformall.exception.MallinkException;
|
|
|
|
@@ -1438,6 +1440,13 @@ public class WxRentContractServiceImpl implements WxRentContractService { |
|
|
|
|
|
|
|
//批量插入账单
|
|
|
|
if(saveDb) {
|
|
|
|
|
|
|
|
WxShopUsers suq = new WxShopUsers();
|
|
|
|
suq.updateTenantInfo(wxRentContract);
|
|
|
|
suq.setShopIds(shopIdList);
|
|
|
|
suq.setStatus(EnumShopUsersStatus.LIVE.getCode());
|
|
|
|
Map<Long,WxShopUsers> shopUserMap = wxShopService.getShopUserMap(suq);
|
|
|
|
|
|
|
|
List<WxAllBill> rblist = new ArrayList<WxAllBill>();
|
|
|
|
for (int k = 0 ; k < resultList.size(); k++) {
|
|
|
|
WxAllBill rb = resultList.get(k);
|
|
|
|
@@ -1451,6 +1460,13 @@ public class WxRentContractServiceImpl implements WxRentContractService { |
|
|
|
rs.setShopId(sid);
|
|
|
|
rs.setNeedPay(new BigDecimal(rb.getNeedPay()).multiply(shoprate).toPlainString());
|
|
|
|
rs.setReceivePay(rs.getNeedPay());
|
|
|
|
rs.setShopId(sid);
|
|
|
|
if (null != shopUserMap ) {
|
|
|
|
WxShopUsers wsu = shopUserMap.get(sid);
|
|
|
|
if (null != wsu) {
|
|
|
|
rs.setCusName(wsu.getName());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
rblist.add(rs);
|
|
|
|
} catch (IllegalAccessException e) {
|
|
|
|
logger.error("savePreviewBill error.",e);
|
|
|
|
@@ -1476,6 +1492,13 @@ public class WxRentContractServiceImpl implements WxRentContractService { |
|
|
|
rs.setShopId(sid);
|
|
|
|
rs.setNeedPay(new BigDecimal(rb.getNeedPay()).multiply(shoprate).toPlainString());
|
|
|
|
rs.setReceivePay(rs.getNeedPay());
|
|
|
|
rs.setShopId(sid);
|
|
|
|
if (null != shopUserMap ) {
|
|
|
|
WxShopUsers wsu = shopUserMap.get(sid);
|
|
|
|
if (null != wsu) {
|
|
|
|
rs.setCusName(wsu.getName());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
mblist.add(rs);
|
|
|
|
} catch (IllegalAccessException e) {
|
|
|
|
logger.error("savePreviewBill error.",e);
|
|
|
|
@@ -1514,6 +1537,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { |
|
|
|
manage.setRentArea(wxBillRent.getRentArea());
|
|
|
|
manage.setShopNumber(wxBillRent.getShopNumber());
|
|
|
|
manage.setCanEdit(EnumYesOrNo.NO.getCode());
|
|
|
|
manage.setCusName(wxBillRent.getCusName());
|
|
|
|
if (feeType.getCode().intValue() == EnumRentContractManageFeeType.RENT_BUSSINESS_MANAGE_FEE.getCode().intValue()){
|
|
|
|
manage.setEnergyFeesId(EnumBillAllType.RENT_BUSSINESS_MANAGE.getEnergyFeesId());
|
|
|
|
manage.setBillType(EnumBillAllType.RENT_BUSSINESS_MANAGE.getCode());
|
|
|
|
@@ -2727,12 +2751,20 @@ public class WxRentContractServiceImpl implements WxRentContractService { |
|
|
|
}else {
|
|
|
|
rentBill = generateRentBill(rentcontract,rentneedpay,rentRate,rentStartDate,rentEndDate,createFrom);
|
|
|
|
}
|
|
|
|
|
|
|
|
List<Long> shopIdList = rentcontract.shopIdsByRentInfo();
|
|
|
|
WxShopUsers suq = new WxShopUsers();
|
|
|
|
suq.updateTenantInfo(rentcontract);
|
|
|
|
suq.setShopIds(shopIdList);
|
|
|
|
suq.setStatus(EnumShopUsersStatus.LIVE.getCode());
|
|
|
|
Map<Long,WxShopUsers> shopUserMap = wxShopService.getShopUserMap(suq);
|
|
|
|
|
|
|
|
//物业账单应收就改为0,因为金额已经合并了
|
|
|
|
WxAllBill propeBill = generatePropertyBill(rentcontract, propertyContractId, rentBill,propertyBill, needpay, propertyRate,createFrom);
|
|
|
|
WxAllBill propeBill = generatePropertyBill(shopIdList,shopUserMap,rentcontract, propertyContractId, rentBill,propertyBill, needpay, propertyRate,createFrom);
|
|
|
|
|
|
|
|
WxAllBill bmbill = generateManageBill(rentcontract, rentBill, needpay, bussinessRate, EnumBillAllType.RENT_BUSSINESS_MANAGE,createFrom);
|
|
|
|
WxAllBill bmbill = generateManageBill(shopIdList,shopUserMap,rentcontract, rentBill, needpay, bussinessRate, EnumBillAllType.RENT_BUSSINESS_MANAGE,createFrom);
|
|
|
|
|
|
|
|
WxAllBill ombill = generateManageBill(rentcontract, rentBill, needpay, operaterRate, EnumBillAllType.RENT_OPERATION_MANAGE,createFrom);
|
|
|
|
WxAllBill ombill = generateManageBill(shopIdList,shopUserMap,rentcontract, rentBill, needpay, operaterRate, EnumBillAllType.RENT_OPERATION_MANAGE,createFrom);
|
|
|
|
|
|
|
|
WxRentContractRevenueSetSalesVo vo = new WxRentContractRevenueSetSalesVo();
|
|
|
|
vo.setTotal(needpay);
|
|
|
|
@@ -2752,7 +2784,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { |
|
|
|
}
|
|
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
|
|
|
|
public WxAllBill generateManageBill(WxRentContract rentcontract,WxAllBill rentBill,String total,String rate,EnumBillAllType type,EnumBillExtraCreateFrom createFrom) {
|
|
|
|
public WxAllBill generateManageBill(List<Long> shopIds,Map<Long,WxShopUsers> shopUserMap,WxRentContract rentcontract,WxAllBill rentBill,String total,String rate,EnumBillAllType type,EnumBillExtraCreateFrom createFrom) {
|
|
|
|
//商业管理费,营运管理费应收改为0,因为金额已经合并了
|
|
|
|
WxAllBill bussinessmanageBill = new WxAllBill();
|
|
|
|
bussinessmanageBill.updateTenantInfo(rentcontract);
|
|
|
|
@@ -2840,76 +2872,76 @@ public class WxRentContractServiceImpl implements WxRentContractService { |
|
|
|
return bmbill;
|
|
|
|
}
|
|
|
|
|
|
|
|
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 != propertyBill ) {
|
|
|
|
// propertyBill.setMoneyChangeDetail("原合同商业管理费金额:"+propertyBill.getNeedPay()+"元,总计分摊比率为:"+rate+",计算调整为:"+bussinessmoney+"元。");
|
|
|
|
// propertyBill.setReceivePay(bussinessmoney);
|
|
|
|
// propertyBill.setBillRemark(createFrom.getMessage()+",自动计算"+"原合同商业管理费金额:"+propertyBill.getNeedPay()+"元,总计分摊比率为:"+rate+",计算调整为:"+bussinessmoney+"元。");
|
|
|
|
// if (new BigDecimal(propertyBill.getOwe()).compareTo(new BigDecimal(0)) < 0 ) {
|
|
|
|
// //propertyBill.setStatus(EnumBillStatus.STOP_TO_SETTLE.getCode());
|
|
|
|
// }else {
|
|
|
|
// //bmbill.setStatus(EnumBillStatus.PAID.getCode());
|
|
|
|
// }
|
|
|
|
// propertyBill.setUpdatetime(new Date());
|
|
|
|
// wxAllBillMapper.updateById(propertyBill);
|
|
|
|
// return propertyBill;
|
|
|
|
// }else {
|
|
|
|
// if (new BigDecimal(bussinessmoney).compareTo(new BigDecimal(0)) > 0 ) {
|
|
|
|
// WxAllBill bmbill = new WxAllBill();
|
|
|
|
// final IdWorker idWorker = IdWorker.get();
|
|
|
|
// bmbill.setId(idWorker.nextId());
|
|
|
|
// bmbill.updateTenantInfo(rentcontract);
|
|
|
|
// bmbill.setBillType(EnumBillAllType.PROPERTY.getCode());
|
|
|
|
// bmbill.setEnergyFeesId(EnumBillAllType.PROPERTY.getEnergyFeesId());
|
|
|
|
// bmbill.setRentContractId(rentcontract.getId());
|
|
|
|
// bmbill.setPropertyContractId(propertyContractId);
|
|
|
|
// bmbill.setIsPreview(EnumYesOrNo.NO.getCode());
|
|
|
|
// bmbill.setCanEdit(EnumYesOrNo.NO.getCode());
|
|
|
|
// bmbill.setMerchantId(rentcontract.getMerchantId());
|
|
|
|
// bmbill.setCreatetime(new Date());
|
|
|
|
// bmbill.setUpdatetime(new Date());
|
|
|
|
// bmbill.setPriceDetail("");
|
|
|
|
// bmbill.setNeedPay(bussinessmoney);
|
|
|
|
// bmbill.setReceivePay(bussinessmoney);
|
|
|
|
// bmbill.setPay("0");
|
|
|
|
// bmbill.setStarttime(rentBill.getStarttime());
|
|
|
|
// bmbill.setEndtime(rentBill.getEndtime());
|
|
|
|
// bmbill.setBillRemark(createFrom.getMessage()+",自动计算创建,总计分摊比率为:"+rate);
|
|
|
|
// bmbill.setExtraCreateFrom(createFrom.getCode());
|
|
|
|
// bmbill.setMoneyChangeDetail("自动计算创建,总计分摊比率为:"+rate+",应收金额为:"+bussinessmoney+"元,");
|
|
|
|
// wxAllBillMapper.insert(bmbill);
|
|
|
|
// return bmbill;
|
|
|
|
// }
|
|
|
|
// return null;
|
|
|
|
// }
|
|
|
|
private WxAllBill generatePropertyBill(List<Long> shopIds,Map<Long,WxShopUsers> shopUserMap,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 != propertyBill ) {
|
|
|
|
propertyBill.setMoneyChangeDetail("原合同商业管理费金额:"+propertyBill.getNeedPay()+"元,总计分摊比率为:"+rate+",计算调整为:"+bussinessmoney+"元。");
|
|
|
|
propertyBill.setReceivePay(bussinessmoney);
|
|
|
|
propertyBill.setBillRemark(createFrom.getMessage()+",自动计算"+"原合同商业管理费金额:"+propertyBill.getNeedPay()+"元,总计分摊比率为:"+rate+",计算调整为:"+bussinessmoney+"元。");
|
|
|
|
if (new BigDecimal(propertyBill.getOwe()).compareTo(new BigDecimal(0)) < 0 ) {
|
|
|
|
//propertyBill.setStatus(EnumBillStatus.STOP_TO_SETTLE.getCode());
|
|
|
|
}else {
|
|
|
|
//bmbill.setStatus(EnumBillStatus.PAID.getCode());
|
|
|
|
}
|
|
|
|
propertyBill.setUpdatetime(new Date());
|
|
|
|
wxAllBillMapper.updateById(propertyBill);
|
|
|
|
return propertyBill;
|
|
|
|
}else {
|
|
|
|
if (new BigDecimal(bussinessmoney).compareTo(new BigDecimal(0)) > 0 ) {
|
|
|
|
WxAllBill bmbill = new WxAllBill();
|
|
|
|
final IdWorker idWorker = IdWorker.get();
|
|
|
|
bmbill.setId(idWorker.nextId());
|
|
|
|
bmbill.updateTenantInfo(rentcontract);
|
|
|
|
bmbill.setBillType(EnumBillAllType.PROPERTY.getCode());
|
|
|
|
bmbill.setEnergyFeesId(EnumBillAllType.PROPERTY.getEnergyFeesId());
|
|
|
|
bmbill.setRentContractId(rentcontract.getId());
|
|
|
|
bmbill.setPropertyContractId(propertyContractId);
|
|
|
|
bmbill.setIsPreview(EnumYesOrNo.NO.getCode());
|
|
|
|
bmbill.setCanEdit(EnumYesOrNo.NO.getCode());
|
|
|
|
bmbill.setMerchantId(rentcontract.getMerchantId());
|
|
|
|
bmbill.setCreatetime(new Date());
|
|
|
|
bmbill.setUpdatetime(new Date());
|
|
|
|
bmbill.setPriceDetail("");
|
|
|
|
bmbill.setNeedPay(bussinessmoney);
|
|
|
|
bmbill.setReceivePay(bussinessmoney);
|
|
|
|
bmbill.setPay("0");
|
|
|
|
bmbill.setStarttime(rentBill.getStarttime());
|
|
|
|
bmbill.setEndtime(rentBill.getEndtime());
|
|
|
|
bmbill.setBillRemark(createFrom.getMessage()+",自动计算创建,总计分摊比率为:"+rate);
|
|
|
|
bmbill.setExtraCreateFrom(createFrom.getCode());
|
|
|
|
bmbill.setMoneyChangeDetail("自动计算创建,总计分摊比率为:"+rate+",应收金额为:"+bussinessmoney+"元,");
|
|
|
|
wxAllBillMapper.insert(bmbill);
|
|
|
|
return bmbill;
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
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.setCanEdit(EnumYesOrNo.NO.getCode());
|
|
|
|
// bmbill.setMerchantId(rentcontract.getMerchantId());
|
|
|
|
// 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.setBillRemark(createFrom.getMessage()+",自动计算创建,分摊比例为"+rate);
|
|
|
|
// bmbill.setExtraCreateFrom(createFrom.getCode());
|
|
|
|
// bmbill.setMoneyChangeDetail("自动计算创建,分摊比例为"+rate+",计算应收金额为:"+money+"元,");
|
|
|
|
// wxAllBillMapper.insert(bmbill);
|
|
|
|
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.setCanEdit(EnumYesOrNo.NO.getCode());
|
|
|
|
bmbill.setMerchantId(rentcontract.getMerchantId());
|
|
|
|
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.setBillRemark(createFrom.getMessage()+",自动计算创建,分摊比例为"+rate);
|
|
|
|
bmbill.setExtraCreateFrom(createFrom.getCode());
|
|
|
|
bmbill.setMoneyChangeDetail("自动计算创建,分摊比例为"+rate+",计算应收金额为:"+money+"元,");
|
|
|
|
wxAllBillMapper.insert(bmbill);
|
|
|
|
return bmbill;
|
|
|
|
}
|
|
|
|
|
|
|
|
|