| @@ -1,6 +1,7 @@ | |||
| package com.iformall.controller.rent; | |||
| import com.alibaba.fastjson.JSONArray; | |||
| import com.github.pagehelper.PageHelper; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.SystemControllerLog; | |||
| import com.iformall.common.Result; | |||
| @@ -19,10 +20,13 @@ import com.iformall.domain.po.WxShop; | |||
| import com.iformall.domain.po.WxUserDataRule; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.WxBillAll; | |||
| import com.iformall.domain.vo.WxBillAllVo; | |||
| import com.iformall.domain.vo.WxBillExcelTemplate; | |||
| import com.iformall.domain.vo.WxBillSum; | |||
| import com.iformall.domain.vo.WxMerchantBillVo; | |||
| import com.iformall.domain.vo.WxMerchantMicroPayVo; | |||
| import com.iformall.domain.vo.WxShopVo; | |||
| import com.iformall.service.ExcelService; | |||
| import com.iformall.service.WxBillAllService; | |||
| import com.iformall.service.WxBillDailyService; | |||
| import com.iformall.service.WxBillDepositService; | |||
| @@ -35,6 +39,7 @@ import com.iformall.service.WxBillRentService; | |||
| import com.iformall.service.WxMerchantService; | |||
| import com.iformall.service.WxPayAccountBillService; | |||
| import com.iformall.service.WxShopService; | |||
| import com.iformall.service.helper.WxBillAllHelper; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| @@ -65,42 +70,19 @@ public class WxBillAllController extends BaseController { | |||
| @Autowired | |||
| private WxBillAllService wxBillAllService; | |||
| private Logger logger = LoggerFactory.getLogger(WxBillAllController.class); | |||
| @Autowired | |||
| private WxMerchantService wxMerchantService; | |||
| @Autowired | |||
| private WxBillRentService wxBillRentService; | |||
| @Autowired | |||
| private WxBillRentManageService wxBillRentManageService; | |||
| @Autowired | |||
| private WxBillDepositService wxBillRentDepositService; | |||
| @Autowired | |||
| private WxBillPropertyService wxBillPropertyService; | |||
| @Autowired | |||
| private WxBillPropertyDepositService wxBillPropertyDepositService; | |||
| @Autowired | |||
| private WxBillDailyService wxBillDailyService; | |||
| @Autowired | |||
| private WxBillOtherService wxBillOtherService; | |||
| WxPayAccountBillService wxPayAccountBillService; | |||
| @Autowired | |||
| private WxBillOtherDepositService wxBillOtherDepositService; | |||
| WxBillAllHelper billAllHelper; | |||
| @Autowired | |||
| private WxShopService wxShopService; | |||
| private WxMerchantService wxMerchantService; | |||
| private Logger logger = LoggerFactory.getLogger(WxBillAllController.class); | |||
| @Autowired | |||
| WxPayAccountBillService wxPayAccountBillService; | |||
| ExcelService excelService; | |||
| @GetMapping("merchantBillList") | |||
| @ApiImplicitParams({ | |||
| @@ -113,175 +95,68 @@ public class WxBillAllController extends BaseController { | |||
| wxMerchant.setFloorForRule(dataRule.getFloorIds()); | |||
| wxMerchant.setBusinessForRule(dataRule.getBussinessIds()); | |||
| } | |||
| Date starttime = wxMerchant.getStarttime(); | |||
| Date enttime = wxMerchant.getEndtime(); | |||
| wxMerchant.setStarttime(null); | |||
| wxMerchant.setEndtime(null); | |||
| PageInfo<WxMerchant> merchantPage = wxMerchantService.listAsPage(wxMerchant, pageNum, pageSize); | |||
| if (null != merchantPage && null != merchantPage.getList() && merchantPage.getList().size() > 0 ) { | |||
| List<WxMerchantBillVo> retList = new ArrayList<WxMerchantBillVo>(); | |||
| for (int i = 0 ; i < merchantPage.getList().size(); i ++) { | |||
| WxMerchantBillVo vo = new WxMerchantBillVo(); | |||
| WxMerchant m = merchantPage.getList().get(i); | |||
| vo.setMerchantId(m.getId()); | |||
| vo.setMerchantName(m.getName()); | |||
| vo.setShopNumber(getMerchantShopNumber(m)); | |||
| WxBillSum rentSum = getBillRentSum(wxMerchant,starttime, enttime); | |||
| WxBillSum rentManageSum = getBillRentManage(wxMerchant, starttime, enttime); | |||
| WxBillSum rentDepositSum = getBillDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum propertySum = getBillProperty(wxMerchant, starttime, enttime); | |||
| WxBillSum propertyDepositSum = getBillPropertyDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum dailySum = getBillDaily(wxMerchant, starttime, enttime); | |||
| WxBillSum otherSum = getBillOther(wxMerchant, starttime, enttime); | |||
| WxBillSum otherDepositSum = getBillOtherDeposit(wxMerchant, starttime, enttime); | |||
| vo.setNeedPay(calcuteSum(rentSum.getNeedPay(),rentManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(), | |||
| propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay())); | |||
| vo.setPaid(calcuteSum(rentSum.getPaid(),rentManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(), | |||
| propertyDepositSum.getPaid(),dailySum.getPaid(),otherSum.getPaid(),otherDepositSum.getPaid())); | |||
| vo.setOwe(calcuteSum(rentSum.getOwe(),rentManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(), | |||
| propertyDepositSum.getOwe(),dailySum.getOwe(),otherSum.getOwe(),otherDepositSum.getOwe())); | |||
| retList.add(vo); | |||
| } | |||
| return new ResultData(retList); | |||
| } | |||
| return new ResultData(); | |||
| return new ResultData(getVoPage(wxMerchant, pageNum, pageSize)); | |||
| } | |||
| private WxBillSum getBillRentSum(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillRent br = new WxBillRent(); | |||
| br.updateTenantInfo(tenantEntity); | |||
| br.setStarttime(starttime); | |||
| br.setEndtime(enttime); | |||
| WxBillSum rentSum = wxBillRentService.getBillMonthSum(br); | |||
| if (null == rentSum) { | |||
| rentSum = new WxBillSum(); | |||
| } | |||
| rentSum.setBillName("租赁费用"); | |||
| return rentSum; | |||
| private PageInfo<WxMerchantBillVo> getVoPage(WxMerchant wxMerchant,Integer pageNum, Integer pageSize) { | |||
| Date starttime = wxMerchant.getStarttime(); | |||
| Date enttime = wxMerchant.getEndtime(); | |||
| wxMerchant.setStarttime(null); | |||
| wxMerchant.setEndtime(null); | |||
| PageInfo<WxMerchant> merchantPage = wxMerchantService.listAsPage(wxMerchant, pageNum, pageSize); | |||
| if (null != merchantPage && null != merchantPage.getList() && merchantPage.getList().size() > 0 ) { | |||
| List<WxMerchantBillVo> retList = new ArrayList<WxMerchantBillVo>(); | |||
| for (int i = 0 ; i < merchantPage.getList().size(); i ++) { | |||
| WxMerchantBillVo vo = new WxMerchantBillVo(); | |||
| WxMerchant m = merchantPage.getList().get(i); | |||
| vo.setMerchantId(m.getId()); | |||
| vo.setMerchantName(m.getName()); | |||
| vo.setShopNumber(billAllHelper.getMerchantShopNumber(m)); | |||
| WxBillSum rentSum = billAllHelper.getBillRentSum(wxMerchant,starttime, enttime); | |||
| WxBillSum rentManageSum = billAllHelper.getBillRentManage(wxMerchant, starttime, enttime); | |||
| WxBillSum rentDepositSum = billAllHelper.getBillDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum propertySum = billAllHelper.getBillProperty(wxMerchant, starttime, enttime); | |||
| WxBillSum propertyDepositSum = billAllHelper.getBillPropertyDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum dailySum = billAllHelper.getBillDaily(wxMerchant, starttime, enttime); | |||
| WxBillSum otherSum = billAllHelper.getBillOther(wxMerchant, starttime, enttime); | |||
| WxBillSum otherDepositSum = billAllHelper.getBillOtherDeposit(wxMerchant, starttime, enttime); | |||
| vo.setNeedPay(billAllHelper.calcuteSum(rentSum.getNeedPay(),rentManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(), | |||
| propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay())); | |||
| vo.setPaid(billAllHelper.calcuteSum(rentSum.getPaid(),rentManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(), | |||
| propertyDepositSum.getPaid(),dailySum.getPaid(),otherSum.getPaid(),otherDepositSum.getPaid())); | |||
| vo.setOwe(billAllHelper.calcuteSum(rentSum.getOwe(),rentManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(), | |||
| propertyDepositSum.getOwe(),dailySum.getOwe(),otherSum.getOwe(),otherDepositSum.getOwe())); | |||
| retList.add(vo); | |||
| } | |||
| PageHelper.startPage(pageNum, pageSize); | |||
| return new PageInfo<WxMerchantBillVo>(retList); | |||
| } | |||
| PageHelper.startPage(pageNum, pageSize); | |||
| return new PageInfo<WxMerchantBillVo>(new ArrayList<WxMerchantBillVo>()); | |||
| } | |||
| private WxBillSum getBillRentManage(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillRentManage brm = new WxBillRentManage(); | |||
| brm.updateTenantInfo(tenantEntity); | |||
| brm.setStarttime(starttime); | |||
| brm.setEndtime(enttime); | |||
| WxBillSum rentManageSum = wxBillRentManageService.getBillMonthSum(brm); | |||
| if (null == rentManageSum) { | |||
| rentManageSum = new WxBillSum(); | |||
| } | |||
| rentManageSum.setBillName("租赁营业&商业管理费费用"); | |||
| return rentManageSum; | |||
| } | |||
| private WxBillSum getBillDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillDeposit bd = new WxBillDeposit(); | |||
| bd.updateTenantInfo(tenantEntity); | |||
| bd.setStarttime(starttime); | |||
| bd.setEndtime(enttime); | |||
| WxBillSum rentDepositSum = wxBillRentDepositService.getBillMonthSum(bd); | |||
| if (null == rentDepositSum) { | |||
| rentDepositSum = new WxBillSum(); | |||
| } | |||
| rentDepositSum.setBillName("租赁押金费用"); | |||
| return rentDepositSum; | |||
| } | |||
| private WxBillSum getBillProperty(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillProperty bp = new WxBillProperty(); | |||
| bp.updateTenantInfo(tenantEntity); | |||
| bp.setStarttime(starttime); | |||
| bp.setEndtime(enttime); | |||
| WxBillSum propertySum = wxBillPropertyService.getBillMonthSum(bp); | |||
| if (null == propertySum) { | |||
| propertySum = new WxBillSum(); | |||
| } | |||
| propertySum.setBillName("物业费用"); | |||
| return propertySum; | |||
| } | |||
| private WxBillSum getBillPropertyDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillPropertyDeposit pd = new WxBillPropertyDeposit(); | |||
| pd.updateTenantInfo(tenantEntity); | |||
| pd.setStarttime(starttime); | |||
| pd.setEndtime(enttime); | |||
| WxBillSum propertyDepositSum = wxBillPropertyDepositService.getBillMonthSum(pd); | |||
| if (null == propertyDepositSum) { | |||
| propertyDepositSum = new WxBillSum(); | |||
| } | |||
| propertyDepositSum.setBillName("物业押金费用"); | |||
| return propertyDepositSum; | |||
| } | |||
| private WxBillSum getBillDaily(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillDaily bdd = new WxBillDaily(); | |||
| bdd.updateTenantInfo(tenantEntity); | |||
| bdd.setStarttime(starttime); | |||
| bdd.setEndtime(enttime); | |||
| WxBillSum dailySum = wxBillDailyService.getBillMonthSum(bdd); | |||
| if (null == dailySum) { | |||
| dailySum = new WxBillSum(); | |||
| } | |||
| dailySum.setBillName("日藏水电空调费用"); | |||
| return dailySum; | |||
| } | |||
| private WxBillSum getBillOther(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillOther bo = new WxBillOther(); | |||
| bo.updateTenantInfo(tenantEntity); | |||
| bo.setStarttime(starttime); | |||
| bo.setEndtime(enttime); | |||
| WxBillSum otherSum = wxBillOtherService.getBillMonthSum(bo); | |||
| if (null == otherSum) { | |||
| otherSum = new WxBillSum(); | |||
| } | |||
| otherSum.setBillName("其他费用"); | |||
| return otherSum; | |||
| } | |||
| private WxBillSum getBillOtherDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillOtherDeposit bod = new WxBillOtherDeposit(); | |||
| bod.updateTenantInfo(tenantEntity); | |||
| bod.setStarttime(starttime); | |||
| bod.setEndtime(enttime); | |||
| WxBillSum otherDepositSum = wxBillOtherDepositService.getBillMonthSum(bod); | |||
| if (null == otherDepositSum) { | |||
| otherDepositSum = new WxBillSum(); | |||
| } | |||
| otherDepositSum.setBillName("其他押金费用"); | |||
| return otherDepositSum; | |||
| } | |||
| private String calcuteSum(String... money) { | |||
| if (null != money) { | |||
| BigDecimal total = new BigDecimal(0); | |||
| for (int i = 0 ; i < money.length ; i++) { | |||
| String _m = money[i]; | |||
| if (StringUtils.isBlank(_m)) { | |||
| _m = "0"; | |||
| } | |||
| total.add(new BigDecimal(_m)); | |||
| } | |||
| return total.setScale(2,RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| return "0"; | |||
| } | |||
| private String getMerchantShopNumber(WxMerchant merchant) { | |||
| List<WxShopVo> shopList = wxShopService.findMerchantShopVoList(merchant, merchant.getId()); | |||
| if (null != shopList && shopList.size() > 0 ) { | |||
| StringBuffer sb = new StringBuffer(""); | |||
| for (int i = 0 ; i < shopList.size() ; i ++) { | |||
| WxShopVo v = shopList.get(i); | |||
| sb.append(v.getShopNumber()).append(","); | |||
| } | |||
| return sb.toString(); | |||
| } | |||
| return null; | |||
| @GetMapping("exportMerchantBillList") | |||
| public void exportBill(@ModelAttribute WxMerchant wxMerchant, HttpServletRequest request, HttpServletResponse response) { | |||
| wxMerchant.updateTenantInfo(getTenantInfo()); | |||
| WxUserDataRule dataRule = this.getCurrentDataFloors(); | |||
| if (null != dataRule) { | |||
| wxMerchant.setFloorForRule(dataRule.getFloorIds()); | |||
| wxMerchant.setBusinessForRule(dataRule.getBussinessIds()); | |||
| } | |||
| PageInfo<WxMerchantBillVo> page = getVoPage(wxMerchant, 1, 10000); | |||
| excelService.exportExcel(page.getList(), null, "商户账单总览数据", WxMerchantBillVo.class, "商户账单总览数据.xlsx", response, false); | |||
| } | |||
| /** | |||
| * 商户计费详情 | |||
| * @param wxMerchant | |||
| * @return | |||
| */ | |||
| @GetMapping("oneMerchantBillList") | |||
| public ResultData oneMerchantBillList(@ModelAttribute WxMerchant wxMerchant) { | |||
| if (null == wxMerchant.getId()) { | |||
| @@ -299,22 +174,22 @@ public class WxBillAllController extends BaseController { | |||
| WxMerchantBillVo vo = new WxMerchantBillVo(); | |||
| vo.setMerchantId(m.getId()); | |||
| vo.setMerchantName(m.getName()); | |||
| vo.setShopNumber(getMerchantShopNumber(m)); | |||
| vo.setShopNumber(billAllHelper.getMerchantShopNumber(m)); | |||
| WxBillSum rentSum = getBillRentSum(wxMerchant,starttime, enttime); | |||
| WxBillSum rentManageSum = getBillRentManage(wxMerchant, starttime, enttime); | |||
| WxBillSum rentDepositSum = getBillDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum propertySum = getBillProperty(wxMerchant, starttime, enttime); | |||
| WxBillSum propertyDepositSum = getBillPropertyDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum dailySum = getBillDaily(wxMerchant, starttime, enttime); | |||
| WxBillSum otherSum = getBillOther(wxMerchant, starttime, enttime); | |||
| WxBillSum otherDepositSum = getBillOtherDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum rentSum = billAllHelper.getBillRentSum(wxMerchant,starttime, enttime); | |||
| WxBillSum rentManageSum = billAllHelper.getBillRentManage(wxMerchant, starttime, enttime); | |||
| WxBillSum rentDepositSum = billAllHelper.getBillDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum propertySum = billAllHelper.getBillProperty(wxMerchant, starttime, enttime); | |||
| WxBillSum propertyDepositSum = billAllHelper.getBillPropertyDeposit(wxMerchant, starttime, enttime); | |||
| WxBillSum dailySum = billAllHelper.getBillDaily(wxMerchant, starttime, enttime); | |||
| WxBillSum otherSum = billAllHelper.getBillOther(wxMerchant, starttime, enttime); | |||
| WxBillSum otherDepositSum = billAllHelper.getBillOtherDeposit(wxMerchant, starttime, enttime); | |||
| vo.setNeedPay(calcuteSum(rentSum.getNeedPay(),rentManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(), | |||
| vo.setNeedPay(billAllHelper.calcuteSum(rentSum.getNeedPay(),rentManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(), | |||
| propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay())); | |||
| vo.setPaid(calcuteSum(rentSum.getPaid(),rentManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(), | |||
| vo.setPaid(billAllHelper.calcuteSum(rentSum.getPaid(),rentManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(), | |||
| propertyDepositSum.getPaid(),dailySum.getPaid(),otherSum.getPaid(),otherDepositSum.getPaid())); | |||
| vo.setOwe(calcuteSum(rentSum.getOwe(),rentManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(), | |||
| vo.setOwe(billAllHelper.calcuteSum(rentSum.getOwe(),rentManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(), | |||
| propertyDepositSum.getOwe(),dailySum.getOwe(),otherSum.getOwe(),otherDepositSum.getOwe())); | |||
| List<WxBillSum> sumlist = new ArrayList<>(); | |||
| @@ -331,6 +206,32 @@ public class WxBillAllController extends BaseController { | |||
| return new ResultData(vo); | |||
| } | |||
| /** | |||
| * 欠缴商户列表 | |||
| * @param wxBillAll | |||
| * @param pageNum | |||
| * @param pageSize | |||
| * @return | |||
| */ | |||
| @GetMapping("oweMerchantlist") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| @SystemControllerLog(description = "费用收缴数据-欠缴商户列表") | |||
| public ResultData oweMerchantlist(@ModelAttribute WxBillAll wxBillAll, Integer pageNum, Integer pageSize) { | |||
| logger.debug("[" + getIpAddr() + "] WxBillAllController::oweMerchantlist"); | |||
| if (null == wxBillAll) { | |||
| wxBillAll = new WxBillAll(); | |||
| } | |||
| //默认查当月第一天到今天 | |||
| if(StringUtils.isNotBlank(wxBillAll.getEndtime())){ | |||
| wxBillAll.setEndtime(wxBillAll.getEndtime()+" 23:59:59"); | |||
| } | |||
| wxBillAll.updateTenantInfo(getTenantInfo()); | |||
| Map<String, Object> result = wxBillAllService.getOweBillAsPage(wxBillAll, pageNum, pageSize); | |||
| return new ResultData(result); | |||
| } | |||
| @GetMapping("oweBillCount") | |||
| @@ -400,12 +301,6 @@ public class WxBillAllController extends BaseController { | |||
| return new ResultData(wxBillAllService.allDepositList(wxBillAll)); | |||
| } | |||
| @GetMapping("exportBill") | |||
| @SystemControllerLog(description = "账单总览-导出") | |||
| public void exportBill(@ModelAttribute WxBillAll wxBillAll, HttpServletRequest request, HttpServletResponse response) { | |||
| wxBillAll.updateTenantInfo(getTenantInfo()); | |||
| wxBillAllService.exportBill(request, response, wxBillAll); | |||
| } | |||
| // @GetMapping("getBillInfo") | |||
| // @SystemControllerLog(description = "账单总览-获取账单信息") | |||
| @@ -416,32 +311,6 @@ public class WxBillAllController extends BaseController { | |||
| // } | |||
| /** | |||
| * 欠缴商户列表 | |||
| * @param wxBillAll | |||
| * @param pageNum | |||
| * @param pageSize | |||
| * @return | |||
| */ | |||
| @GetMapping("oweMerchantlist") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| @SystemControllerLog(description = "费用收缴数据-欠缴商户列表") | |||
| public ResultData oweMerchantlist(@ModelAttribute WxBillAll wxBillAll, Integer pageNum, Integer pageSize) { | |||
| logger.debug("[" + getIpAddr() + "] WxBillAllController::oweMerchantlist"); | |||
| if (null == wxBillAll) { | |||
| wxBillAll = new WxBillAll(); | |||
| } | |||
| //默认查当月第一天到今天 | |||
| if(StringUtils.isNotBlank(wxBillAll.getEndtime())){ | |||
| wxBillAll.setEndtime(wxBillAll.getEndtime()+" 23:59:59"); | |||
| } | |||
| wxBillAll.updateTenantInfo(getTenantInfo()); | |||
| Map<String, Object> result = wxBillAllService.getOweBillAsPage(wxBillAll, pageNum, pageSize); | |||
| return new ResultData(result); | |||
| } | |||
| /** | |||
| * 应收、承付商户列表 | |||
| * @param wxBillAll | |||
| @@ -0,0 +1,196 @@ | |||
| package com.iformall.service.helper; | |||
| import java.math.BigDecimal; | |||
| import java.math.RoundingMode; | |||
| import java.util.Date; | |||
| import java.util.List; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import com.iformall.domain.po.WxBillDaily; | |||
| import com.iformall.domain.po.WxBillDeposit; | |||
| import com.iformall.domain.po.WxBillOther; | |||
| import com.iformall.domain.po.WxBillOtherDeposit; | |||
| import com.iformall.domain.po.WxBillProperty; | |||
| import com.iformall.domain.po.WxBillPropertyDeposit; | |||
| import com.iformall.domain.po.WxBillRent; | |||
| import com.iformall.domain.po.WxBillRentManage; | |||
| import com.iformall.domain.po.WxMerchant; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.WxBillSum; | |||
| import com.iformall.domain.vo.WxShopVo; | |||
| import com.iformall.service.WxBillDailyService; | |||
| import com.iformall.service.WxBillDepositService; | |||
| import com.iformall.service.WxBillOtherDepositService; | |||
| import com.iformall.service.WxBillOtherService; | |||
| import com.iformall.service.WxBillPropertyDepositService; | |||
| import com.iformall.service.WxBillPropertyService; | |||
| import com.iformall.service.WxBillRentManageService; | |||
| import com.iformall.service.WxBillRentService; | |||
| import com.iformall.service.WxMerchantService; | |||
| import com.iformall.service.WxShopService; | |||
| @Service | |||
| public class WxBillAllHelper { | |||
| @Autowired | |||
| private WxBillRentService wxBillRentService; | |||
| @Autowired | |||
| private WxBillRentManageService wxBillRentManageService; | |||
| @Autowired | |||
| private WxBillDepositService wxBillRentDepositService; | |||
| @Autowired | |||
| private WxBillPropertyService wxBillPropertyService; | |||
| @Autowired | |||
| private WxBillPropertyDepositService wxBillPropertyDepositService; | |||
| @Autowired | |||
| private WxBillDailyService wxBillDailyService; | |||
| @Autowired | |||
| private WxBillOtherService wxBillOtherService; | |||
| @Autowired | |||
| private WxBillOtherDepositService wxBillOtherDepositService; | |||
| @Autowired | |||
| private WxShopService wxShopService; | |||
| public WxBillSum getBillRentSum(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillRent br = new WxBillRent(); | |||
| br.updateTenantInfo(tenantEntity); | |||
| br.setStarttime(starttime); | |||
| br.setEndtime(enttime); | |||
| WxBillSum rentSum = wxBillRentService.getBillMonthSum(br); | |||
| if (null == rentSum) { | |||
| rentSum = new WxBillSum(); | |||
| } | |||
| rentSum.setBillName("租赁费用"); | |||
| return rentSum; | |||
| } | |||
| public WxBillSum getBillRentManage(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillRentManage brm = new WxBillRentManage(); | |||
| brm.updateTenantInfo(tenantEntity); | |||
| brm.setStarttime(starttime); | |||
| brm.setEndtime(enttime); | |||
| WxBillSum rentManageSum = wxBillRentManageService.getBillMonthSum(brm); | |||
| if (null == rentManageSum) { | |||
| rentManageSum = new WxBillSum(); | |||
| } | |||
| rentManageSum.setBillName("租赁营业&商业管理费费用"); | |||
| return rentManageSum; | |||
| } | |||
| public WxBillSum getBillDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillDeposit bd = new WxBillDeposit(); | |||
| bd.updateTenantInfo(tenantEntity); | |||
| bd.setStarttime(starttime); | |||
| bd.setEndtime(enttime); | |||
| WxBillSum rentDepositSum = wxBillRentDepositService.getBillMonthSum(bd); | |||
| if (null == rentDepositSum) { | |||
| rentDepositSum = new WxBillSum(); | |||
| } | |||
| rentDepositSum.setBillName("租赁押金费用"); | |||
| return rentDepositSum; | |||
| } | |||
| public WxBillSum getBillProperty(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillProperty bp = new WxBillProperty(); | |||
| bp.updateTenantInfo(tenantEntity); | |||
| bp.setStarttime(starttime); | |||
| bp.setEndtime(enttime); | |||
| WxBillSum propertySum = wxBillPropertyService.getBillMonthSum(bp); | |||
| if (null == propertySum) { | |||
| propertySum = new WxBillSum(); | |||
| } | |||
| propertySum.setBillName("物业费用"); | |||
| return propertySum; | |||
| } | |||
| public WxBillSum getBillPropertyDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillPropertyDeposit pd = new WxBillPropertyDeposit(); | |||
| pd.updateTenantInfo(tenantEntity); | |||
| pd.setStarttime(starttime); | |||
| pd.setEndtime(enttime); | |||
| WxBillSum propertyDepositSum = wxBillPropertyDepositService.getBillMonthSum(pd); | |||
| if (null == propertyDepositSum) { | |||
| propertyDepositSum = new WxBillSum(); | |||
| } | |||
| propertyDepositSum.setBillName("物业押金费用"); | |||
| return propertyDepositSum; | |||
| } | |||
| public WxBillSum getBillDaily(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillDaily bdd = new WxBillDaily(); | |||
| bdd.updateTenantInfo(tenantEntity); | |||
| bdd.setStarttime(starttime); | |||
| bdd.setEndtime(enttime); | |||
| WxBillSum dailySum = wxBillDailyService.getBillMonthSum(bdd); | |||
| if (null == dailySum) { | |||
| dailySum = new WxBillSum(); | |||
| } | |||
| dailySum.setBillName("日藏水电空调费用"); | |||
| return dailySum; | |||
| } | |||
| public WxBillSum getBillOther(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillOther bo = new WxBillOther(); | |||
| bo.updateTenantInfo(tenantEntity); | |||
| bo.setStarttime(starttime); | |||
| bo.setEndtime(enttime); | |||
| WxBillSum otherSum = wxBillOtherService.getBillMonthSum(bo); | |||
| if (null == otherSum) { | |||
| otherSum = new WxBillSum(); | |||
| } | |||
| otherSum.setBillName("其他费用"); | |||
| return otherSum; | |||
| } | |||
| public WxBillSum getBillOtherDeposit(TenantEntity tenantEntity,Date starttime, Date enttime) { | |||
| WxBillOtherDeposit bod = new WxBillOtherDeposit(); | |||
| bod.updateTenantInfo(tenantEntity); | |||
| bod.setStarttime(starttime); | |||
| bod.setEndtime(enttime); | |||
| WxBillSum otherDepositSum = wxBillOtherDepositService.getBillMonthSum(bod); | |||
| if (null == otherDepositSum) { | |||
| otherDepositSum = new WxBillSum(); | |||
| } | |||
| otherDepositSum.setBillName("其他押金费用"); | |||
| return otherDepositSum; | |||
| } | |||
| public String calcuteSum(String... money) { | |||
| if (null != money) { | |||
| BigDecimal total = new BigDecimal(0); | |||
| for (int i = 0 ; i < money.length ; i++) { | |||
| String _m = money[i]; | |||
| if (StringUtils.isBlank(_m)) { | |||
| _m = "0"; | |||
| } | |||
| total.add(new BigDecimal(_m)); | |||
| } | |||
| return total.setScale(2,RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| return "0"; | |||
| } | |||
| public String getMerchantShopNumber(WxMerchant merchant) { | |||
| List<WxShopVo> shopList = wxShopService.findMerchantShopVoList(merchant, merchant.getId()); | |||
| if (null != shopList && shopList.size() > 0 ) { | |||
| StringBuffer sb = new StringBuffer(""); | |||
| for (int i = 0 ; i < shopList.size() ; i ++) { | |||
| WxShopVo v = shopList.get(i); | |||
| sb.append(v.getShopNumber()).append(","); | |||
| } | |||
| return sb.toString(); | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; | |||
| import com.iformall.domain.po.WxRentContract; | |||
| import com.iformall.enums.*; | |||
| import com.iformall.service.impl.WxRentContractServiceImpl; | |||
| import com.iformall.utils.Constant; | |||
| import com.iformall.utils.DateUtils; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.joda.time.DateTime; | |||
| @@ -62,10 +63,10 @@ public class WxRentContractHelper { | |||
| if (rentArea == null || rentArea.equalsIgnoreCase("NaN")) { | |||
| rentArea = "0"; | |||
| } | |||
| priceArr[i] = new BigDecimal(priceStr).multiply(new BigDecimal(rentArea)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| priceArr[i] = new BigDecimal(priceStr).multiply(new BigDecimal(rentArea)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| List<String[]> priceList = computeRatioByShop(wxRentContract.getDecimalSize(),rentInfoArray,wxRentContract.getBussinessManagementFeeRatioWay(),priceArr,feeRatioField); | |||
| List<String[]> priceList = computeRatioByShop(Constant.default_long_decimal_size,rentInfoArray,wxRentContract.getBussinessManagementFeeRatioWay(),priceArr,feeRatioField); | |||
| if (null != priceList) { | |||
| return calcuteRatioByPart(priceList, feeRatioField); | |||
| }else { | |||
| @@ -79,8 +80,8 @@ public class WxRentContractHelper { | |||
| if (rentArea == null || rentArea.equalsIgnoreCase("NaN")) { | |||
| rentArea = "0"; | |||
| } | |||
| String ratioFirstYearPrice = new BigDecimal(fee).multiply(new BigDecimal(rentArea)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| return calcuteRatioByJoin(wxRentContract.getDecimalSize(),ratioWay, ratio, ratioFirstYearPrice); | |||
| String ratioFirstYearPrice = new BigDecimal(fee).multiply(new BigDecimal(rentArea)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| return calcuteRatioByJoin(Constant.default_long_decimal_size,ratioWay, ratio, ratioFirstYearPrice); | |||
| } | |||
| } | |||
| return null; | |||
| @@ -115,7 +116,7 @@ public class WxRentContractHelper { | |||
| } | |||
| priceArr[i] = priceStr; | |||
| } | |||
| return computeRatioByShop(wxRentContract.getDecimalSize(),rentInfoArray,wxRentContract.getAdjustRatioWay(),priceArr,"adjustRatio"); | |||
| return computeRatioByShop(Constant.default_long_decimal_size,rentInfoArray,wxRentContract.getAdjustRatioWay(),priceArr,"adjustRatio"); | |||
| } | |||
| //计算每年租金基数(合铺录入) | |||
| @@ -145,28 +146,28 @@ public class WxRentContractHelper { | |||
| for (int i = 1; i < size; i++) { | |||
| BigDecimal divide = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000)); | |||
| priceD = priceD.add(divide); | |||
| priceArrs[i] = priceD.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| priceArrs[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { | |||
| for (int i = 1; i < size; i++) { | |||
| priceD = priceD.add(new BigDecimal(integers.get(i))); | |||
| priceArrs[i] = priceD.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| priceArrs[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){ | |||
| for (int i = 1; i < size; i++) { | |||
| if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { | |||
| if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| priceArrs[i] = new BigDecimal(integers.get(i)).multiply(new BigDecimal(12)) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| continue; | |||
| } | |||
| if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| priceArrs[i] = new BigDecimal(integers.get(i)).multiply(new BigDecimal(wxRentContract.getReceivePeriod())) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| continue; | |||
| } | |||
| } | |||
| priceArrs[i] = new BigDecimal(integers.get(i)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| priceArrs[i] = new BigDecimal(integers.get(i)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| }else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ | |||
| for (int i = 1; i < size; i++) { | |||
| @@ -179,16 +180,16 @@ public class WxRentContractHelper { | |||
| } | |||
| if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { | |||
| if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| priceArrs[i] = _p.multiply(new BigDecimal(12)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| priceArrs[i] = _p.multiply(new BigDecimal(12)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| continue; | |||
| } | |||
| if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| priceArrs[i] = _p.multiply(new BigDecimal(wxRentContract.getReceivePeriod())) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| continue; | |||
| } | |||
| } | |||
| priceArrs[i] = _p.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| priceArrs[i] = _p.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } | |||
| @@ -210,7 +211,7 @@ public class WxRentContractHelper { | |||
| String[] revenuePriceArrs = new String[size]; | |||
| if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { | |||
| String _revenuePriceD = new BigDecimal(wxRentContract.getRevenue()).multiply(new BigDecimal(wxRentContract.getPayRatio())) | |||
| .divide(new BigDecimal(10000)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .divide(new BigDecimal(10000)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| revenuePriceArrs[0] = _revenuePriceD; | |||
| BigDecimal revenuePriceD = new BigDecimal(_revenuePriceD); | |||
| //联营扣点调整比率 | |||
| @@ -230,31 +231,31 @@ public class WxRentContractHelper { | |||
| BigDecimal _p = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(revenueRationSets.get(i))).divide(new BigDecimal(10000)); | |||
| revenuePriceD = revenuePriceD.add(_p); | |||
| } | |||
| revenuePriceArrs[i] = revenuePriceD.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| revenuePriceArrs[i] = revenuePriceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { | |||
| for (int i = 1; i < size; i++) { | |||
| if (revenueYears.size() == size && revenueRationSets.size() == size) { | |||
| revenuePriceD = revenuePriceD.add(new BigDecimal(revenueRationSets.get(i))); | |||
| } | |||
| revenuePriceArrs[i] = revenuePriceD.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| revenuePriceArrs[i] = revenuePriceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){ | |||
| for (int i = 1; i < size; i++) { | |||
| if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { | |||
| if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| revenuePriceArrs[i] = new BigDecimal(revenueRationSets.get(i)).multiply(new BigDecimal(12)) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| continue; | |||
| } | |||
| if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| revenuePriceArrs[i] = new BigDecimal(revenueRationSets.get(i)).multiply(new BigDecimal(wxRentContract.getReceivePeriod())) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| continue; | |||
| } | |||
| } | |||
| revenuePriceArrs[i] = new BigDecimal(revenueRationSets.get(i)) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| }else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ | |||
| for (int i = 1; i < size; i++) { | |||
| @@ -265,16 +266,16 @@ public class WxRentContractHelper { | |||
| if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { | |||
| if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| revenuePriceArrs[i] = _p.multiply(new BigDecimal(12)) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| continue; | |||
| } | |||
| if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| revenuePriceArrs[i] = _p.multiply(new BigDecimal(wxRentContract.getReceivePeriod())) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| continue; | |||
| } | |||
| } | |||
| revenuePriceArrs[i] = _p.setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| revenuePriceArrs[i] = _p.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } | |||
| } | |||
| @@ -379,11 +380,11 @@ public class WxRentContractHelper { | |||
| //按日 | |||
| if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ | |||
| BigDecimal priceD = new BigDecimal(price); | |||
| String needpayD = WxRentContractHelper.getNeedPay(wxRentContract.getDecimalSize(),new BigDecimal(0),priceD,startDate,endDate); | |||
| String needpayD = WxRentContractHelper.getNeedPay(Constant.default_long_decimal_size,new BigDecimal(0),priceD,startDate,endDate); | |||
| //取整 | |||
| //needpay = new Double(needpayD).longValue(); | |||
| //四舍五入 | |||
| needpay = new BigDecimal(needpayD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(needpayD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| }else{ | |||
| BigDecimal priceD = new BigDecimal(price); | |||
| if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType())) { | |||
| @@ -393,12 +394,12 @@ public class WxRentContractHelper { | |||
| } | |||
| //年或者设置跳点率为年周期 除12 | |||
| if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { | |||
| priceD = new BigDecimal(price).divide(new BigDecimal(12),wxRentContract.getDecimalSize(),RoundingMode.HALF_UP).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP); | |||
| priceD = new BigDecimal(price).divide(new BigDecimal(12),Constant.default_long_decimal_size,RoundingMode.HALF_UP).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP); | |||
| } | |||
| }else{ | |||
| //年 除12 | |||
| if(EnumPriceUnit.Y.getCode().equals(wxRentContract.getPriceUnit())){ | |||
| priceD = new BigDecimal(price).divide(new BigDecimal(12),wxRentContract.getDecimalSize(),RoundingMode.HALF_UP).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP); | |||
| priceD = new BigDecimal(price).divide(new BigDecimal(12),Constant.default_long_decimal_size,RoundingMode.HALF_UP).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP); | |||
| } | |||
| } | |||
| @@ -406,7 +407,7 @@ public class WxRentContractHelper { | |||
| //生成金额直接计算 | |||
| if(!saveDb){ | |||
| //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,part)).longValue(); | |||
| needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,part)).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,part)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| return needpay; | |||
| } | |||
| @@ -421,22 +422,22 @@ public class WxRentContractHelper { | |||
| instance.add(Calendar.DATE, -1); | |||
| if(sd.format(instance.getTime()).equals(sd.format(endDate))){ | |||
| int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))+"-01"); | |||
| needpay = new BigDecimal(months).multiply(priceD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(months).multiply(priceD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| }else{ | |||
| //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); | |||
| needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,false)) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,false)) | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| }else if(i == 0){//第一期 | |||
| if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ | |||
| if(isFirstDay(startDate)){ | |||
| int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01"); | |||
| months++; | |||
| needpay = new BigDecimal(months).multiply(priceD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(months).multiply(priceD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| }else{ | |||
| //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); | |||
| needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,false)) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,false)) | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| }else{ | |||
| if(isFirstDay(startDate)){ | |||
| @@ -444,11 +445,11 @@ public class WxRentContractHelper { | |||
| if(isFirstDay(startDate)){ | |||
| months++; | |||
| } | |||
| needpay = new BigDecimal(months).multiply(priceD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(months).multiply(priceD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| }else{ | |||
| //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); | |||
| needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,false)) | |||
| .setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,false)) | |||
| .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } | |||
| }else{//中间 | |||
| @@ -459,10 +460,10 @@ public class WxRentContractHelper { | |||
| //如果当月费用需要按天计算 | |||
| if (monthCalDay) { | |||
| //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); | |||
| needpay = new BigDecimal(getMonthNeedPay(wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,false)) | |||
| .setScale(wxRentContract.getDecimalSize(), BigDecimal.ROUND_HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(getMonthNeedPay(Constant.default_long_decimal_size,priceD, startDate, endDate,dayType,receivePeriod,false)) | |||
| .setScale(Constant.default_long_decimal_size, BigDecimal.ROUND_HALF_UP).toPlainString(); | |||
| }else { | |||
| needpay = new BigDecimal(months).multiply(priceD).setScale(wxRentContract.getDecimalSize(), RoundingMode.HALF_UP).toPlainString(); | |||
| needpay = new BigDecimal(months).multiply(priceD).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } | |||
| } | |||
| @@ -349,19 +349,19 @@ public class WxBillRentServiceImpl implements WxBillRentService { | |||
| if(EnumBusRatioTime.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())){ | |||
| if(startInt == endInt && months == 12){ | |||
| //刚好1年 | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0); | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0); | |||
| }else{ | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0); | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0); | |||
| } | |||
| }else if(EnumBusRatioTime.MONTH.getCode().equals(wxRentContract.getBusDiscountTime())){ | |||
| if(startInt == endInt && months == 1){ | |||
| //刚好1个月 | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0); | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0); | |||
| }else{ | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0); | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0); | |||
| } | |||
| }else if(EnumBusRatioTime.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())){ | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(wxRentContract.getDecimalSize(),EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod()); | |||
| ratioVo = WxRentContractServiceImpl.getPayRatio(Constant.default_long_decimal_size,EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod()); | |||
| } | |||
| } | |||
| } | |||
| @@ -3278,15 +3278,15 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| for (int i = 0 ; i <= months ; i++ ) { | |||
| BigDecimal _money = new BigDecimal(0); | |||
| if (i == 0 ) { | |||
| _money = sumTradeDailyBySameMonthDay(wxRentContract.getDecimalSize(),bq, wxRentContract.getMerchantId(), br.getStarttime(), | |||
| _money = sumTradeDailyBySameMonthDay(Constant.default_long_decimal_size,bq, wxRentContract.getMerchantId(), br.getStarttime(), | |||
| DateUtils.getLastDayForMonth(br.getStarttime())); | |||
| }else if (i == months){ | |||
| _money = sumTradeDailyBySameMonthDay(wxRentContract.getDecimalSize(),bq, wxRentContract.getMerchantId(), | |||
| _money = sumTradeDailyBySameMonthDay(Constant.default_long_decimal_size,bq, wxRentContract.getMerchantId(), | |||
| DateUtils.getFirstDayForCurrMonth(DateUtils.getTimeAfterMonths(i,br.getStarttime())), | |||
| DateUtils.getDayEnd(DateUtils.getTimeAfterDays(-1, br.getEndtime()))); | |||
| }else { | |||
| Date _date = DateUtils.getTimeAfterMonths(i,br.getStarttime()); | |||
| _money = sumTradeDailyBySameMonthDay(wxRentContract.getDecimalSize(),bq, wxRentContract.getMerchantId(), | |||
| _money = sumTradeDailyBySameMonthDay(Constant.default_long_decimal_size,bq, wxRentContract.getMerchantId(), | |||
| DateUtils.getFirstDayForCurrMonth(_date), | |||
| DateUtils.getLastDayForMonth(_date)); | |||
| } | |||
| @@ -3295,7 +3295,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| }else { | |||
| //同一个月 | |||
| //合同账单结束的时间是00:00:00,取日期要取前一天 | |||
| needPay = sumTradeDailyBySameMonthDay(wxRentContract.getDecimalSize(),bq, wxRentContract.getMerchantId(), | |||
| needPay = sumTradeDailyBySameMonthDay(Constant.default_long_decimal_size,bq, wxRentContract.getMerchantId(), | |||
| br.getStarttime(), DateUtils.getDayEnd(br.getEndtime())); | |||
| } | |||
| needPay = needPay.multiply(new BigDecimal(wxRentContract.getPayRatio())) | |||