diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java index 664f5bfa3..676c05f79 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java @@ -44,16 +44,31 @@ public class WxRentContractController extends BaseController { public ResultData add(@RequestBody WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::add"); wxRentContract.setTenantId(getTenantId()); - return wxRentContractService.saveOrUpdate(wxRentContract); + return wxRentContractService.save(wxRentContract); } @PostMapping("update") public ResultData update(@RequestBody WxRentContract wxRentContract) { logger.debug("[" + getIpAddr() + "] WxRentContractController::update"); wxRentContract.setTenantId(getTenantId()); - return wxRentContractService.saveOrUpdate(wxRentContract); + return wxRentContractService.update(wxRentContract); } + @PostMapping("updateMoney") + public ResultData updateMoney(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateMoney"); + wxRentContract.setTenantId(getTenantId()); + return wxRentContractService.update(wxRentContract); + } + + @PostMapping("updateFile") + public ResultData updateFile(@RequestBody WxRentContract wxRentContract) { + logger.debug("[" + getIpAddr() + "] WxRentContractController::updateFile"); + wxRentContract.setTenantId(getTenantId()); + return wxRentContractService.updateFile(wxRentContract); + } + + @GetMapping("/del") @ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true) public ResultData delete(String id) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java index 1a8eee3d6..9381e7964 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -35,7 +35,9 @@ public interface WxRentContractService { * * @param record */ - ResultData saveOrUpdate(WxRentContract record); + ResultData save(WxRentContract record); + + ResultData update(WxRentContract record); /** * 根据Id删除实体 @@ -57,4 +59,6 @@ public interface WxRentContractService { void exportContract(HttpServletRequest request, HttpServletResponse response, String tenantId); + ResultData updateFile(WxRentContract wxRentContract); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 4d018008c..878f69ce8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -113,9 +113,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Transactional(rollbackFor = {Exception.class}) @Override - public ResultData saveOrUpdate(WxRentContract record) { + public ResultData save(WxRentContract record) { //保存租赁合同信息 - if (record.getId() == null) { final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); if(record.getStartDate().after(record.getRentalStartDate())){ @@ -158,87 +157,95 @@ public class WxRentContractServiceImpl implements WxRentContractService { throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); } return new ResultData(Result.SUCCESS, "保存租赁合同信息成功", record); - } else {//更新租赁合同信息 - WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId()); - if (wxRentContract == null) { - return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); - } - Calendar instance = Calendar.getInstance(); + } + + @Transactional(rollbackFor = {Exception.class}) + @Override + public ResultData update(WxRentContract record) { + return getResultDataForUpdate(record); + } + + public ResultData getResultDataForUpdate(WxRentContract record) { + //更新租赁合同信息 + WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId()); + if (wxRentContract == null) { + return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); + } + Calendar instance = Calendar.getInstance(); + instance.setTime(record.getRentalStartDate()); + instance.add(Calendar.MONTH, record.getLease()); + instance.add(Calendar.DAY_OF_MONTH, -1); + record.setRentalEndDate(instance.getTime()); + + //起租结束时间 + if(!record.getStartDate().equals(record.getRentalStartDate())){ + instance.clear(); instance.setTime(record.getRentalStartDate()); - instance.add(Calendar.MONTH, record.getLease()); instance.add(Calendar.DAY_OF_MONTH, -1); - record.setRentalEndDate(instance.getTime()); + record.setEndDate(instance.getTime()); + }else{ + record.setEndDate(record.getStartDate()); + } - //起租结束时间 - if(!record.getStartDate().equals(record.getRentalStartDate())){ - instance.clear(); - instance.setTime(record.getRentalStartDate()); - instance.add(Calendar.DAY_OF_MONTH, -1); - record.setEndDate(instance.getTime()); - }else{ - record.setEndDate(record.getStartDate()); + if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { + if (record.getRevenue() == null || record.getRevenue().intValue() == 0) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "营业额不能为空且大于0"); } - - if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { - if (record.getRevenue() == null || record.getRevenue().intValue() == 0) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "营业额不能为空且大于0"); - } - if (record.getPayRatio() == null || record.getPayRatio().intValue() == 0) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "支付比例不能为空且大于0"); - } - BigDecimal hundred = new BigDecimal(100); - BigDecimal revenue = new BigDecimal(record.getRevenue()).divide(hundred); - BigDecimal payRatio = new BigDecimal(record.getPayRatio()).divide(hundred); - BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN); - record.setPrice(price.multiply(hundred).intValue()); - } - if (record.getPrice() == null || record.getPrice().intValue() == 0) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "租金不能为空且大于0"); - } - if (record.getDeposit() == null || record.getDeposit().intValue() == 0) { - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "押金不能为空且大于0"); + if (record.getPayRatio() == null || record.getPayRatio().intValue() == 0) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "支付比例不能为空且大于0"); } + BigDecimal hundred = new BigDecimal(100); + BigDecimal revenue = new BigDecimal(record.getRevenue()).divide(hundred); + BigDecimal payRatio = new BigDecimal(record.getPayRatio()).divide(hundred); + BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN); + record.setPrice(price.multiply(hundred).intValue()); + } + if (record.getPrice() == null || record.getPrice().intValue() == 0) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "租金不能为空且大于0"); + } + if (record.getDeposit() == null || record.getDeposit().intValue() == 0) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR, "押金不能为空且大于0"); + } - record.setUpdatetime(new Date()); - try { - WxRentContract wxRentContractParams = new WxRentContract(); - wxRentContractParams.setTenantId(record.getTenantId()); - wxRentContractParams.setShopId(record.getShopId()); - long count = wxRentContractMapper.queryRentContractData(wxRentContractParams).stream(). - filter(rc -> !rc.get("status").equals(EnumRentContractStatus.CONTRACT_TERMINATE.getCode()) - && !rc.get("status").equals(EnumRentContractStatus.WAIT_SIGN.getCode()) - && !rc.get("status").equals(EnumRentContractStatus.INVALID.getCode()) - && !rc.get("status").equals(EnumRentContractStatus.CONTRACT_END.getCode()) - && !rc.get("id").equals(wxRentContract.getId())).count(); - if (count > 0) { - return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND); - } - wxRentContractMapper.updateByPrimaryKeySelective(record); - //建立账单 - if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) - && record.getReceivePeriod() != null && record.getDeposit() > 0 && record.getPrice() > 0) { - WxBillRent wxBillRent = new WxBillRent(); - wxBillRent.setMerchantId(record.getMerchantId()); - List> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent); - if (billRentList.size() == 0) { - WxMerchant wxMerchant = new WxMerchant(); - wxMerchant.setId(record.getMerchantId()); - wxMerchant.setTenantId(record.getTenantId()); - //租金 - buildRent(wxMerchant); - //押金 - buildDeposit(wxMerchant); - } + record.setUpdatetime(new Date()); + try { + WxRentContract wxRentContractParams = new WxRentContract(); + wxRentContractParams.setTenantId(record.getTenantId()); + wxRentContractParams.setShopId(record.getShopId()); + long count = wxRentContractMapper.queryRentContractData(wxRentContractParams).stream(). + filter(rc -> !rc.get("status").equals(EnumRentContractStatus.CONTRACT_TERMINATE.getCode()) + && !rc.get("status").equals(EnumRentContractStatus.WAIT_SIGN.getCode()) + && !rc.get("status").equals(EnumRentContractStatus.INVALID.getCode()) + && !rc.get("status").equals(EnumRentContractStatus.CONTRACT_END.getCode()) + && !rc.get("id").equals(wxRentContract.getId())).count(); + if (count > 0) { + return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND); + } + wxRentContractMapper.updateByPrimaryKeySelective(record); + //建立账单 + if (record.getMerchantId() != null && record.getStatus().equals(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode()) + && record.getReceivePeriod() != null && record.getDeposit() > 0 && record.getPrice() > 0) { + WxBillRent wxBillRent = new WxBillRent(); + wxBillRent.setMerchantId(record.getMerchantId()); + List> billRentList = wxBillRentMapper.queryBillRentList(wxBillRent); + if (billRentList.size() == 0) { + WxMerchant wxMerchant = new WxMerchant(); + wxMerchant.setId(record.getMerchantId()); + wxMerchant.setTenantId(record.getTenantId()); + //租金 + buildRent(wxMerchant); + //押金 + buildDeposit(wxMerchant); } - } catch (Exception e) { - logger.error("更新租赁合同信息失败,e:" + e.getMessage()); - throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); } - return new ResultData(Result.SUCCESS, "更新租赁合同信息成功"); + } catch (Exception e) { + logger.error("更新租赁合同信息失败,e:" + e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); } - + return new ResultData(Result.SUCCESS, "更新租赁合同信息成功"); } + @Transactional(rollbackFor = {Exception.class}) public void buildDeposit(WxMerchant wxMerchant) { MallUserInfo user = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute("userSession"); @@ -682,6 +689,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { exportWord(templatePath, filepath, filename, result, request, response); } + @Override + public ResultData updateFile(WxRentContract record) { + return getResultDataForUpdate(record); + } + public Map getRentAndPropertyInfo(String id) { logger.info("获取租赁物业合同数据>>>>>>id:"+id); WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(id);