| @@ -136,13 +136,13 @@ public class WxPropertyContractController extends WxContractBaseController { | |||||
| wxPropertyContractService.download(request, response); | wxPropertyContractService.download(request, response); | ||||
| } | } | ||||
| @GetMapping("/getPropertyContractStatusInfo") | |||||
| @SystemControllerLog(description = "物业合同-状态信息") | |||||
| public ResultData getPropertyContractStatusInfo(@ModelAttribute WxPropertyContract wxPropertyContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxPropertyContractController::getPropertyContractStatusInfo"); | |||||
| wxPropertyContract.updateTenantInfo(getTenantInfo()); | |||||
| return new ResultData(Result.SUCCESS, "查询成功", wxPropertyContractService.getRentContractStatusInfo(wxPropertyContract)); | |||||
| } | |||||
| // @GetMapping("/getPropertyContractStatusInfo") | |||||
| // @SystemControllerLog(description = "物业合同-状态信息") | |||||
| // public ResultData getPropertyContractStatusInfo(@ModelAttribute WxPropertyContract wxPropertyContract) { | |||||
| // logger.debug("[" + getIpAddr() + "] WxPropertyContractController::getPropertyContractStatusInfo"); | |||||
| // wxPropertyContract.updateTenantInfo(getTenantInfo()); | |||||
| // return new ResultData(Result.SUCCESS, "查询成功", wxPropertyContractService.getRentContractStatusInfo(wxPropertyContract)); | |||||
| // } | |||||
| @GetMapping("/endPropertyContract") | @GetMapping("/endPropertyContract") | ||||
| @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) | @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) | ||||
| @@ -152,21 +152,21 @@ public class WxPropertyContractController extends WxContractBaseController { | |||||
| return wxPropertyContractService.endRentContract(id); | return wxPropertyContractService.endRentContract(id); | ||||
| } | } | ||||
| @GetMapping("/getRentContractList") | |||||
| @SystemControllerLog(description = "物业合同-查询列表") | |||||
| public ResultData getRentContractList(@ModelAttribute WxPropertyContract wxPropertyContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxPropertyContractController::getRentContractList"); | |||||
| wxPropertyContract.updateTenantInfo(getTenantInfo()); | |||||
| return new ResultData(Result.SUCCESS, "查询成功", wxPropertyContractService.getRentContractList(wxPropertyContract)); | |||||
| } | |||||
| @GetMapping("/endPropertyContractByRentContractId") | |||||
| @ApiImplicitParam(name = "rentContractId", value = "rentContractId", dataType = "Long", paramType = "query", required = true) | |||||
| @SystemControllerLog(description = "物业合同-根据租赁合同终止") | |||||
| public ResultData endPropertyContractByRentContractId(Long rentContractId) { | |||||
| logger.debug("[" + getIpAddr() + "] WxPropertyContractController::endPropertyContractByRentContractId"); | |||||
| return wxPropertyContractService.endPropertyContractByRentContractId(rentContractId); | |||||
| } | |||||
| // @GetMapping("/getRentContractList") | |||||
| // @SystemControllerLog(description = "物业合同-查询列表") | |||||
| // public ResultData getRentContractList(@ModelAttribute WxPropertyContract wxPropertyContract) { | |||||
| // logger.debug("[" + getIpAddr() + "] WxPropertyContractController::getRentContractList"); | |||||
| // wxPropertyContract.updateTenantInfo(getTenantInfo()); | |||||
| // return new ResultData(Result.SUCCESS, "查询成功", wxPropertyContractService.getRentContractList(wxPropertyContract)); | |||||
| // } | |||||
| // @GetMapping("/endPropertyContractByRentContractId") | |||||
| // @ApiImplicitParam(name = "rentContractId", value = "rentContractId", dataType = "Long", paramType = "query", required = true) | |||||
| // @SystemControllerLog(description = "物业合同-根据租赁合同终止") | |||||
| // public ResultData endPropertyContractByRentContractId(Long rentContractId) { | |||||
| // logger.debug("[" + getIpAddr() + "] WxPropertyContractController::endPropertyContractByRentContractId"); | |||||
| // return wxPropertyContractService.endPropertyContractByRentContractId(rentContractId); | |||||
| // } | |||||
| @GetMapping("/hasRentContract") | @GetMapping("/hasRentContract") | ||||
| @ApiImplicitParam(name = "rentContractId", value = "rentContractId", dataType = "Long", paramType = "query", required = true) | @ApiImplicitParam(name = "rentContractId", value = "rentContractId", dataType = "Long", paramType = "query", required = true) | ||||
| @@ -188,22 +188,7 @@ public class WxRentContractController extends WxContractBaseController { | |||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | return new ResultData(e.getErrorCode(), e.getMessage()); | ||||
| } | } | ||||
| } | } | ||||
| @GetMapping("/hasRentStatus") | |||||
| @SystemControllerLog(description = "查询店铺租赁状态") | |||||
| public ResultData hasRentStatus(@ModelAttribute WxRentContract wxRentContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::hasRentStatus"); | |||||
| wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| return wxRentContractService.hasRentStatus(wxRentContract); | |||||
| } | |||||
| @GetMapping("/hasContractNumber") | |||||
| @SystemControllerLog(description = "租赁合同-检查合同编号是否存在") | |||||
| public ResultData hasContractNumber(@ModelAttribute WxRentContract wxRentContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::hasContractNumber"); | |||||
| wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| return wxRentContractService.hasContractNumber(wxRentContract); | |||||
| } | |||||
| @PostMapping("update") | @PostMapping("update") | ||||
| @SystemControllerLog(description = "租赁合同-更新") | @SystemControllerLog(description = "租赁合同-更新") | ||||
| @@ -241,16 +226,12 @@ public class WxRentContractController extends WxContractBaseController { | |||||
| } | } | ||||
| } | } | ||||
| @GetMapping("/endRentContract") | |||||
| @ApiImplicitParams({ | |||||
| @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true), | |||||
| @ApiImplicitParam(name = "status", value = "status", dataType = "int", paramType = "query", required = true)}) | |||||
| @SystemControllerLog(description = "租赁合同-终结合同") | |||||
| public ResultData endRentContract(Long id,Integer status) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::endRentContract"); | |||||
| return wxRentContractService.endRentContract(id,status); | |||||
| } | |||||
| /** | |||||
| * 查询商户可用商铺 | |||||
| * @param merchantId | |||||
| * @param contractId | |||||
| * @return | |||||
| */ | |||||
| @GetMapping("/merchantShops") | @GetMapping("/merchantShops") | ||||
| @ApiImplicitParams({ | @ApiImplicitParams({ | ||||
| @ApiImplicitParam(name = "merchantId", value = "merchantId", dataType = "Long", paramType = "query", required = true), | @ApiImplicitParam(name = "merchantId", value = "merchantId", dataType = "Long", paramType = "query", required = true), | ||||
| @@ -311,25 +292,7 @@ public class WxRentContractController extends WxContractBaseController { | |||||
| } | } | ||||
| return new ResultData(shops); | return new ResultData(shops); | ||||
| } | |||||
| @GetMapping("getRentContractList") | |||||
| @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 getRentContractList(@ModelAttribute WxRentContract wxRentContract, Integer validStatus, Integer pageNum, Integer pageSize) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::getRentContractList"); | |||||
| if (null == wxRentContract) wxRentContract = new WxRentContract(); | |||||
| wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| if (1 == validStatus) { | |||||
| List<Integer> statuss = new ArrayList<Integer>(); | |||||
| statuss.add(EnumRentContractStatus.PAING.getCode()); | |||||
| statuss.add(EnumRentContractStatus.READY_FOR_PAING.getCode()); | |||||
| wxRentContract.setStatuss(statuss); | |||||
| } | |||||
| return new ResultData(wxRentContractService.getRentContractList(wxRentContract, pageNum, pageSize)); | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * 一个商户只能存在一个续签合同。如果有计租中的,则取计租中最新的一条,如果没有计租中的,则取正常到期最近的一条 | * 一个商户只能存在一个续签合同。如果有计租中的,则取计租中最新的一条,如果没有计租中的,则取正常到期最近的一条 | ||||
| @@ -364,9 +327,123 @@ public class WxRentContractController extends WxContractBaseController { | |||||
| } | } | ||||
| } | } | ||||
| return new ResultData(); | return new ResultData(); | ||||
| } | |||||
| /** | |||||
| * 作废 | |||||
| * @param wxRentContract | |||||
| * @return | |||||
| */ | |||||
| @GetMapping("/unvalid") | |||||
| @SystemControllerLog(description = "作废合同") | |||||
| public ResultData unvalid(@ModelAttribute WxRentContract wxRentContract) { | |||||
| //wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| WxRentContract contract = wxRentContractService.getSimpleDeatil(wxRentContract.getId()); | |||||
| if (null == contract) { | |||||
| return new ResultData(Result.ERROR, "合同不存在."); | |||||
| } | |||||
| if (contract.getStatus().intValue() == EnumRentContractStatus.DRAFT.getCode().intValue() || | |||||
| (contract.getStatus().intValue() == EnumRentContractStatus.PERFORMANCE.getCode().intValue() | |||||
| && contract.getApplyStatus().intValue() == EnumRentContractAppStatus.REJECT.getCode().intValue())) { | |||||
| contract.setStatus(EnumRentContractStatus.INVALID.getCode()); | |||||
| contract.setUpdatetime(new Date()); | |||||
| return wxRentContractService.updateRentContract(contract); | |||||
| }else { | |||||
| return new ResultData(Result.ERROR, "合同状态不允许作废.只能作废草稿或者履约拒绝的合同。"); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * 终止 | |||||
| * @param id | |||||
| * @param status | |||||
| * @return | |||||
| */ | |||||
| @PostMapping("endContract") | |||||
| @SystemControllerLog(description = "租赁合同-终止合同") | |||||
| public ResultData endContract(@RequestBody WxRentContract wxRentContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract"); | |||||
| wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| wxRentContractService.endContract(wxRentContract); | |||||
| return new ResultData(); | |||||
| } | |||||
| @RequestMapping("/download") | |||||
| public void download(HttpServletRequest request, HttpServletResponse response){ | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::download"); | |||||
| wxRentContractService.download(request,response); | |||||
| } | |||||
| @GetMapping("getDateDiff") | |||||
| @ApiImplicitParams({ | |||||
| @ApiImplicitParam(name = "startDate", value = "开始时间", dataType = "string", paramType = "query", required = true), | |||||
| @ApiImplicitParam(name = "endtDate", value = "结束时间", dataType = "string", paramType = "query", required = true)}) | |||||
| @SystemControllerLog(description = "获取两个时间相差,返回n月零n天") | |||||
| public ResultData getDateDiff(String startDate, String endDate) throws Exception{ | |||||
| SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); | |||||
| Map<String,Integer> map = new HashMap<>(); | |||||
| int[] array = DateUtils.getDiff(sd.parse(startDate),sd.parse(endDate)); | |||||
| map.put("month",array[0]); | |||||
| map.put("day",array[1]); | |||||
| return new ResultData(map); | |||||
| } | |||||
| @GetMapping("getRentContractList") | |||||
| @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 getRentContractList(@ModelAttribute WxRentContract wxRentContract, Integer validStatus, Integer pageNum, Integer pageSize) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::getRentContractList"); | |||||
| if (null == wxRentContract) wxRentContract = new WxRentContract(); | |||||
| wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| if (1 == validStatus) { | |||||
| List<Integer> statuss = new ArrayList<Integer>(); | |||||
| statuss.add(EnumRentContractStatus.PAING.getCode()); | |||||
| statuss.add(EnumRentContractStatus.READY_FOR_PAING.getCode()); | |||||
| wxRentContract.setStatuss(statuss); | |||||
| } | |||||
| return new ResultData(wxRentContractService.getRentContractList(wxRentContract, pageNum, pageSize)); | |||||
| } | } | ||||
| // @GetMapping("/del") | |||||
| // @ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true) | |||||
| // @SystemControllerLog(description = "租赁合同-删除") | |||||
| // public ResultData delete(String id) { | |||||
| // logger.debug("[" + getIpAddr() + "] WxRentContractController::delete"); | |||||
| // return wxRentContractService.deleteById(id); | |||||
| // } | |||||
| @GetMapping("/hasRentStatus") | |||||
| @SystemControllerLog(description = "查询店铺租赁状态") | |||||
| public ResultData hasRentStatus(@ModelAttribute WxRentContract wxRentContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::hasRentStatus"); | |||||
| wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| return wxRentContractService.hasRentStatus(wxRentContract); | |||||
| } | |||||
| @GetMapping("/hasContractNumber") | |||||
| @SystemControllerLog(description = "租赁合同-检查合同编号是否存在") | |||||
| public ResultData hasContractNumber(@ModelAttribute WxRentContract wxRentContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::hasContractNumber"); | |||||
| wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| return wxRentContractService.hasContractNumber(wxRentContract); | |||||
| } | |||||
| @GetMapping("getMerchantList") | @GetMapping("getMerchantList") | ||||
| @SystemControllerLog(description = "获取商户列表") | @SystemControllerLog(description = "获取商户列表") | ||||
| @ApiImplicitParams({ | @ApiImplicitParams({ | ||||
| @@ -396,20 +473,6 @@ public class WxRentContractController extends WxContractBaseController { | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @GetMapping("getDateDiff") | |||||
| @ApiImplicitParams({ | |||||
| @ApiImplicitParam(name = "startDate", value = "开始时间", dataType = "string", paramType = "query", required = true), | |||||
| @ApiImplicitParam(name = "endtDate", value = "结束时间", dataType = "string", paramType = "query", required = true)}) | |||||
| @SystemControllerLog(description = "获取两个时间相差,返回n月零n天") | |||||
| public ResultData getDateDiff(String startDate, String endDate) throws Exception{ | |||||
| SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); | |||||
| Map<String,Integer> map = new HashMap<>(); | |||||
| int[] array = DateUtils.getDiff(sd.parse(startDate),sd.parse(endDate)); | |||||
| map.put("month",array[0]); | |||||
| map.put("day",array[1]); | |||||
| return new ResultData(map); | |||||
| } | |||||
| /** | /** | ||||
| * 预览账单展示,编辑账期,后端生成账单金额 | * 预览账单展示,编辑账期,后端生成账单金额 | ||||
| * @param wxRentContract | * @param wxRentContract | ||||
| @@ -449,23 +512,15 @@ public class WxRentContractController extends WxContractBaseController { | |||||
| return wxRentContractService.update(rentContract, user.getId(),user.getName(), EnumFromType.SWITCH.getCode(),oldDate); | return wxRentContractService.update(rentContract, user.getId(),user.getName(), EnumFromType.SWITCH.getCode(),oldDate); | ||||
| } | } | ||||
| @GetMapping("/del") | |||||
| @ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true) | |||||
| @SystemControllerLog(description = "租赁合同-删除") | |||||
| public ResultData delete(String id) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::delete"); | |||||
| return wxRentContractService.deleteById(id); | |||||
| } | |||||
| // @GetMapping("exportContract") | |||||
| // @ApiImplicitParams({ | |||||
| // @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)}) | |||||
| // @SystemControllerLog(description = "租赁合同-导出合同") | |||||
| // public void exportContract(Long id,HttpServletRequest request, HttpServletResponse response){ | |||||
| // wxRentContractService.exportContract(request,response,id); | |||||
| // } | |||||
| @RequestMapping("/download") | |||||
| public void download(HttpServletRequest request, HttpServletResponse response){ | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::download"); | |||||
| wxRentContractService.download(request,response); | |||||
| } | |||||
| // @GetMapping("/getRentContractStatusInfo") | // @GetMapping("/getRentContractStatusInfo") | ||||
| // @SystemControllerLog(description = "租赁合同-获取合同状态信息") | // @SystemControllerLog(description = "租赁合同-获取合同状态信息") | ||||
| // public ResultData getRentContractStatusInfo(@ModelAttribute WxRentContract wxRentContract) { | // public ResultData getRentContractStatusInfo(@ModelAttribute WxRentContract wxRentContract) { | ||||
| @@ -476,22 +531,14 @@ public class WxRentContractController extends WxContractBaseController { | |||||
| @PostMapping("updateMerchant") | |||||
| @SystemControllerLog(description = "租赁合同-更新商户") | |||||
| public ResultData updateMerchant(@RequestBody WxRentContract wxRentContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::updateMerchant"); | |||||
| return wxRentContractService.updateMerchant(wxRentContract); | |||||
| } | |||||
| // @PostMapping("updateMerchant") | |||||
| // @SystemControllerLog(description = "租赁合同-更新商户") | |||||
| // public ResultData updateMerchant(@RequestBody WxRentContract wxRentContract) { | |||||
| // logger.debug("[" + getIpAddr() + "] WxRentContractController::updateMerchant"); | |||||
| // return wxRentContractService.updateMerchant(wxRentContract); | |||||
| // } | |||||
| @GetMapping("exportContract") | |||||
| @ApiImplicitParams({ | |||||
| @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)}) | |||||
| @SystemControllerLog(description = "租赁合同-导出合同") | |||||
| public void exportContract(Long id,HttpServletRequest request, HttpServletResponse response){ | |||||
| wxRentContractService.exportContract(request,response,id); | |||||
| } | |||||
| @PostMapping("updateRentContractStatus") | @PostMapping("updateRentContractStatus") | ||||
| @SystemControllerLog(description = "租赁合同-更新合同状态") | @SystemControllerLog(description = "租赁合同-更新合同状态") | ||||
| public ResultData updateRentContractStatus(@RequestBody WxRentContract wxRentContract) { | public ResultData updateRentContractStatus(@RequestBody WxRentContract wxRentContract) { | ||||
| @@ -547,15 +594,6 @@ public class WxRentContractController extends WxContractBaseController { | |||||
| } | } | ||||
| @PostMapping("endContract") | |||||
| @SystemControllerLog(description = "租赁合同-终止合同") | |||||
| public ResultData endContract(@RequestBody WxRentContract wxRentContract) { | |||||
| logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract"); | |||||
| wxRentContract.updateTenantInfo(getTenantInfo()); | |||||
| wxRentContractService.endContract(wxRentContract); | |||||
| return new ResultData(); | |||||
| } | |||||
| @GetMapping("/getContractByContractNumber") | @GetMapping("/getContractByContractNumber") | ||||
| @SystemControllerLog(description = "租赁合同-通过合同编号查询信息") | @SystemControllerLog(description = "租赁合同-通过合同编号查询信息") | ||||
| public ResultData getContractByContractNumber(@ModelAttribute WxRentContract wxRentContract) { | public ResultData getContractByContractNumber(@ModelAttribute WxRentContract wxRentContract) { | ||||
| @@ -62,7 +62,9 @@ public class WxPropertyContract extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="合同进度状态1待签约2已签约未记租3计租中4提前终止5合同到期",name="status") | @io.swagger.annotations.ApiModelProperty(value="合同进度状态1待签约2已签约未记租3计租中4提前终止5合同到期",name="status") | ||||
| private Integer status; | private Integer status; | ||||
| @TableField(exist = false) | |||||
| private List<Integer> statuss; | |||||
| @io.swagger.annotations.ApiModelProperty(value="合同编号",name="contractNumber") | @io.swagger.annotations.ApiModelProperty(value="合同编号",name="contractNumber") | ||||
| private String contractNumber; | private String contractNumber; | ||||
| @@ -87,9 +89,6 @@ public class WxPropertyContract extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="店铺类型:1直营店2加盟店3个体店4旗舰店",name="shopType") | @io.swagger.annotations.ApiModelProperty(value="店铺类型:1直营店2加盟店3个体店4旗舰店",name="shopType") | ||||
| private Integer shopType; | private Integer shopType; | ||||
| @io.swagger.annotations.ApiModelProperty(value="商铺ID",name="shopId") | |||||
| private Long shopId; | |||||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updatetime") | @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updatetime") | ||||
| private Date updatetime; | private Date updatetime; | ||||
| @@ -131,6 +131,17 @@ public class WxShop extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "租金单位", name = "rentUnit") | @io.swagger.annotations.ApiModelProperty(value = "租金单位", name = "rentUnit") | ||||
| private Integer rentUnit; | private Integer rentUnit; | ||||
| @TableField(exist = false) | |||||
| private Integer rent_unit; | |||||
| public Integer getRent_unit() { | |||||
| return rentUnit; | |||||
| } | |||||
| public void setRent_unit() { | |||||
| this.rent_unit = rentUnit; | |||||
| } | |||||
| } | } | ||||
| @@ -9,6 +9,8 @@ import com.iformall.domain.po.WxRentContract; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| import org.apache.ibatis.annotations.Param; | |||||
| /** | /** | ||||
| * @author gongbiao | * @author gongbiao | ||||
| */ | */ | ||||
| @@ -16,7 +18,7 @@ public interface WxPropertyContractMapper extends CommonMapper<WxPropertyContrac | |||||
| List<WxPropertyContract> findList(WxPropertyContract wxPropertyContract); | List<WxPropertyContract> findList(WxPropertyContract wxPropertyContract); | ||||
| List<Map<String,Object>> queryPropertyContractData(WxPropertyContract wxRentContract); | |||||
| //List<Map<String,Object>> queryPropertyContractData(WxPropertyContract wxRentContract); | |||||
| int queryRentContractWaitSignStatus(WxPropertyContract wxRentContract); | int queryRentContractWaitSignStatus(WxPropertyContract wxRentContract); | ||||
| @@ -34,11 +36,11 @@ public interface WxPropertyContractMapper extends CommonMapper<WxPropertyContrac | |||||
| void updateRentWaitSignStatus(WxPropertyContract wxRentContract); | void updateRentWaitSignStatus(WxPropertyContract wxRentContract); | ||||
| void updateRentInvalidStatus(WxPropertyContract wxRentContract); | |||||
| //void updateRentInvalidStatus(WxPropertyContract wxRentContract); | |||||
| List<WxRentContract> getRentContractListByShop(Map<String, Object> params); | |||||
| //List<WxRentContract> getRentContractListByShop(Map<String, Object> params); | |||||
| List<WxRentContract> getRentContractListByPoint(Map<String, Object> params); | |||||
| //List<WxRentContract> getRentContractListByPoint(Map<String, Object> params); | |||||
| void updateApplyStatus(WxPropertyContract wxPropertyContract); | void updateApplyStatus(WxPropertyContract wxPropertyContract); | ||||
| @@ -53,4 +55,6 @@ public interface WxPropertyContractMapper extends CommonMapper<WxPropertyContrac | |||||
| WxPropertyContract findOneByRentId(WxRentContract wxRentContract); | WxPropertyContract findOneByRentId(WxRentContract wxRentContract); | ||||
| WxPropertyContract getByBill(WxBillProperty billRent); | WxPropertyContract getByBill(WxBillProperty billRent); | ||||
| void endContract(WxRentContract wxRentContract); | |||||
| } | } | ||||
| @@ -80,4 +80,6 @@ public interface WxRentContractMapper extends CommonMapper<WxRentContract, Long> | |||||
| List<WxRentContract> getAllContractBymerchantId(WxRentContract wxRentContract); | List<WxRentContract> getAllContractBymerchantId(WxRentContract wxRentContract); | ||||
| List<WxRentContract> getContractByMerchant(WxRentContract wxRentContract); | List<WxRentContract> getContractByMerchant(WxRentContract wxRentContract); | ||||
| Integer getCanApplyCount(@Param("id") Long id); | |||||
| } | } | ||||
| @@ -52,14 +52,14 @@ public interface WxPropertyContractService { | |||||
| void download(HttpServletRequest request, HttpServletResponse response); | void download(HttpServletRequest request, HttpServletResponse response); | ||||
| Object getRentContractStatusInfo(WxPropertyContract record); | |||||
| //Object getRentContractStatusInfo(WxPropertyContract record); | |||||
| ResultData endRentContract(Long id); | ResultData endRentContract(Long id); | ||||
| Object getRentContractList(WxPropertyContract record); | |||||
| //Object getRentContractList(WxPropertyContract record); | |||||
| ResultData endPropertyContractByRentContractId(Long rentContractId); | |||||
| //ResultData endPropertyContractByRentContractId(Long rentContractId); | |||||
| ResultData hasRentContract(Long rentContractId); | ResultData hasRentContract(Long rentContractId); | ||||
| @@ -71,7 +71,7 @@ public interface WxPropertyContractService { | |||||
| List<WxBillProperty> getWxBillPropertyPreview(Long id); | List<WxBillProperty> getWxBillPropertyPreview(Long id); | ||||
| Map<String, Object> updateStatus(WxPropertyContract record); | |||||
| //Map<String, Object> updateStatus(WxPropertyContract record); | |||||
| List<WxBillProperty> buildProperty(WxMerchant wxMerchant, Long userId, WxPropertyContract propertyContract, Integer isPreview,boolean saveDb); | List<WxBillProperty> buildProperty(WxMerchant wxMerchant, Long userId, WxPropertyContract propertyContract, Integer isPreview,boolean saveDb); | ||||
| @@ -60,13 +60,11 @@ public interface WxRentContractService { | |||||
| //Object getRentContractStatusInfo(WxRentContract record); | //Object getRentContractStatusInfo(WxRentContract record); | ||||
| ResultData endRentContract(Long id, Integer status); | |||||
| ResultData updateMerchant(WxRentContract wxRentContract); | |||||
| ResultData updateRentContract(WxRentContract wxRentContract); | |||||
| PageInfo<WxRentContract> getRentContractList(WxRentContract rentContract, Integer pageNum, Integer pageSize); | PageInfo<WxRentContract> getRentContractList(WxRentContract rentContract, Integer pageNum, Integer pageSize); | ||||
| void exportContract(HttpServletRequest request, HttpServletResponse response, Long id); | |||||
| //void exportContract(HttpServletRequest request, HttpServletResponse response, Long id); | |||||
| ResultData updateFile(WxRentContract wxRentContract, Long userId,String userName,Date oldRentStartDate); | ResultData updateFile(WxRentContract wxRentContract, Long userId,String userName,Date oldRentStartDate); | ||||
| @@ -90,7 +88,7 @@ public interface WxRentContractService { | |||||
| //Integer getShopType(WxRentContract wxRentContract); | //Integer getShopType(WxRentContract wxRentContract); | ||||
| void endContract(WxRentContract wxRentContract); | |||||
| ResultData endContract(WxRentContract wxRentContract); | |||||
| void updatePropertyPreviewBill(WxRentContract record); | void updatePropertyPreviewBill(WxRentContract record); | ||||
| @@ -186,6 +186,7 @@ public class WxFlowServiceImpl implements WxFlowService { | |||||
| rent.setBusinessType(flowType); | rent.setBusinessType(flowType); | ||||
| WxRentContract record = wxRentContractMapper.selectById(businessId); | WxRentContract record = wxRentContractMapper.selectById(businessId); | ||||
| //合并的合同-审批时 物业合同的状态肯定不在 签约中 避免更新物业合同时提示店铺存在 | //合并的合同-审批时 物业合同的状态肯定不在 签约中 避免更新物业合同时提示店铺存在 | ||||
| if(record.getOperationType().equals(EnumContractOperationType.WHOLE.getCode())){ | if(record.getOperationType().equals(EnumContractOperationType.WHOLE.getCode())){ | ||||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | WxPropertyContract wxPropertyContract = new WxPropertyContract(); | ||||
| @@ -199,7 +200,10 @@ public class WxFlowServiceImpl implements WxFlowService { | |||||
| //如果是提交审批 , 审批驳回状态不变 | //如果是提交审批 , 审批驳回状态不变 | ||||
| if (EnumRentContractAppStatus.APPLYING.getCode().intValue() == applyStatus.intValue()) { | if (EnumRentContractAppStatus.APPLYING.getCode().intValue() == applyStatus.intValue()) { | ||||
| rent.setStatus(EnumRentContractStatus.PERFORMANCE.getCode()); | |||||
| //如果合同的状态非正常,则不处理 | |||||
| if (EnumRentContractStatus.DRAFT.getCode().intValue() == record.getStatus().intValue()) { | |||||
| rent.setStatus(EnumRentContractStatus.PERFORMANCE.getCode()); | |||||
| } | |||||
| //如果审批完成 | //如果审批完成 | ||||
| }else if (EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue()) { | }else if (EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue()) { | ||||
| wxRentContractService.updateRentContractStatus(businessId); | wxRentContractService.updateRentContractStatus(businessId); | ||||
| @@ -80,13 +80,12 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| public Map<String, Object> listAsPage(WxPropertyContract record, Integer pageIndex, Integer pageSize) { | public Map<String, Object> listAsPage(WxPropertyContract record, Integer pageIndex, Integer pageSize) { | ||||
| //Object rentContractStatusInfo = getRentContractStatusInfo(record); | //Object rentContractStatusInfo = getRentContractStatusInfo(record); | ||||
| PageHelper.startPage(pageIndex, pageSize); | PageHelper.startPage(pageIndex, pageSize); | ||||
| List<Map<String, Object>> rentContractData = wxPropertyContractMapper.queryPropertyContractData(record); | |||||
| PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(rentContractData); | |||||
| //List<Map<String, Object>> rentContractData = wxPropertyContractMapper.queryPropertyContractData(record); | |||||
| Map<String, Object> result = new HashMap<>(); | Map<String, Object> result = new HashMap<>(); | ||||
| PageInfo<WxPropertyContract> pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxPropertyContractMapper.findList(record)); | |||||
| //result.put("rentContractStatusInfo", rentContractStatusInfo); | //result.put("rentContractStatusInfo", rentContractStatusInfo); | ||||
| result.put("pageInfo", pageInfo); | result.put("pageInfo", pageInfo); | ||||
| return result; | return result; | ||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -160,15 +159,6 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| } else { | } else { | ||||
| result.put("wxMerchant", null); | result.put("wxMerchant", null); | ||||
| } | } | ||||
| //关联的店铺 | |||||
| if (wxPropertyContract.getShopId() != null) { | |||||
| WxShop record = new WxShop(); | |||||
| record.setId(wxPropertyContract.getShopId()); | |||||
| List<Map<String, Object>> list = wxShopMapper.findListMap(record); | |||||
| result.put("wxShops", list); | |||||
| } else { | |||||
| result.put("wxShops", Collections.EMPTY_LIST); | |||||
| } | |||||
| //租赁费用欠缴 | //租赁费用欠缴 | ||||
| WxRentContract wxRentContract = new WxRentContract(); | WxRentContract wxRentContract = new WxRentContract(); | ||||
| @@ -187,6 +177,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| if (!select.isEmpty()) { | if (!select.isEmpty()) { | ||||
| result.put("depositStatus", select.get(0).getStatus()); | result.put("depositStatus", select.get(0).getStatus()); | ||||
| } | } | ||||
| //关联的店铺 | |||||
| if (wxRentContract != null) { | |||||
| WxShop record = new WxShop(); | |||||
| if (null != wxRentContract.shopIdsByRentInfo() && wxRentContract.shopIdsByRentInfo().size()>0) { | |||||
| record.setIds(wxRentContract.shopIdsByRentInfo()); | |||||
| List<Map<String, Object>> list = wxShopMapper.findListMap(record); | |||||
| result.put("wxShops", list); | |||||
| }else { | |||||
| result.put("wxShops", Collections.EMPTY_LIST); | |||||
| } | |||||
| } | |||||
| //发起人备注 | //发起人备注 | ||||
| WxFlowRecord wxFlowRecord = new WxFlowRecord(); | WxFlowRecord wxFlowRecord = new WxFlowRecord(); | ||||
| wxFlowRecord.setBusinessId(id); | wxFlowRecord.setBusinessId(id); | ||||
| @@ -239,7 +242,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| bill.setLatePayRatio(0); | bill.setLatePayRatio(0); | ||||
| bill.setPay(0L); | bill.setPay(0L); | ||||
| bill.setIsDel(EnumDelStatus.NOT_DEL.getCode()); | bill.setIsDel(EnumDelStatus.NOT_DEL.getCode()); | ||||
| bill.setShopId(record.getShopId()); | |||||
| //bill.setShopId(record.getShopId()); | |||||
| bill.setExpiredDay(0L); | bill.setExpiredDay(0L); | ||||
| setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); | setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); | ||||
| if (bill.getReceivePay().equals(0L)) { | if (bill.getReceivePay().equals(0L)) { | ||||
| @@ -264,9 +267,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| haspreview = true; | haspreview = true; | ||||
| } | } | ||||
| if (record.getRentShopType().equals(EnumRentShopType.POINT.getCode()) && null == record.getShopId()) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "shopId不能为空"); | |||||
| } | |||||
| // if (record.getRentShopType().equals(EnumRentShopType.POINT.getCode()) && null == record.getShopId()) { | |||||
| // return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "shopId不能为空"); | |||||
| // } | |||||
| WxRentContract wxRentContract = wxRentContractMapper.selectById(record.getRentContractId()); | WxRentContract wxRentContract = wxRentContractMapper.selectById(record.getRentContractId()); | ||||
| if (wxRentContract != null) { | if (wxRentContract != null) { | ||||
| @@ -303,18 +306,18 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "物业费要大于0"); | return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "物业费要大于0"); | ||||
| } | } | ||||
| WxPropertyContract propertyContract = new WxPropertyContract(); | |||||
| propertyContract.updateTenantInfo(wxRentContract); | |||||
| propertyContract.setRentContractId(record.getRentContractId()); | |||||
| long count = wxPropertyContractMapper.findList(propertyContract) | |||||
| // .stream().filter(p -> p.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || | |||||
| // p.getStatus().equals(EnumRentContractStatus.RENT_PAID.getCode()) || | |||||
| // p.getStatus().equals(EnumRentContractStatus.CONTRACT_END_SOON.getCode())).count(); | |||||
| .stream().filter(p -> p.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || | |||||
| p.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); | |||||
| if (count > 1) { | |||||
| return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND); | |||||
| } | |||||
| // WxPropertyContract propertyContract = new WxPropertyContract(); | |||||
| // propertyContract.updateTenantInfo(wxRentContract); | |||||
| // propertyContract.setRentContractId(record.getRentContractId()); | |||||
| // long count = wxPropertyContractMapper.findList(propertyContract) | |||||
| //// .stream().filter(p -> p.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || | |||||
| //// p.getStatus().equals(EnumRentContractStatus.RENT_PAID.getCode()) || | |||||
| //// p.getStatus().equals(EnumRentContractStatus.CONTRACT_END_SOON.getCode())).count(); | |||||
| // .stream().filter(p -> p.getStatus().equals(EnumRentContractStatus.READY_FOR_PAING.getCode()) || | |||||
| // p.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); | |||||
| // if (count > 1) { | |||||
| // return new ResultData(ErrorCode.RENT_CONTRACT_WITH_SHOP_IS_FOUND); | |||||
| // } | |||||
| //保存物业合同信息 | //保存物业合同信息 | ||||
| String message; | String message; | ||||
| boolean hasFlow = true; | boolean hasFlow = true; | ||||
| @@ -489,7 +492,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| wxBillDeposit.updateTenantInfo(wxPropertyContract); | wxBillDeposit.updateTenantInfo(wxPropertyContract); | ||||
| wxBillDeposit.setIsDel(0); | wxBillDeposit.setIsDel(0); | ||||
| wxBillDeposit.setMerchantId(record.getMerchantId()); | wxBillDeposit.setMerchantId(record.getMerchantId()); | ||||
| wxBillDeposit.setShopId(wxPropertyContract.getShopId()); | |||||
| //wxBillDeposit.setShopId(wxPropertyContract.getShopId()); | |||||
| wxBillDeposit.setCreatetime(date); | wxBillDeposit.setCreatetime(date); | ||||
| wxBillDeposit.setUpdatetime(date); | wxBillDeposit.setUpdatetime(date); | ||||
| wxBillDeposit.setIsDel(EnumDelStatus.NOT_DEL.getCode()); | wxBillDeposit.setIsDel(EnumDelStatus.NOT_DEL.getCode()); | ||||
| @@ -688,7 +691,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| wxBillProperty.setIsDel(0); | wxBillProperty.setIsDel(0); | ||||
| wxBillProperty.setMerchantId(wxPropertyContract.getMerchantId()); | wxBillProperty.setMerchantId(wxPropertyContract.getMerchantId()); | ||||
| wxBillProperty.setUserId(userId); | wxBillProperty.setUserId(userId); | ||||
| wxBillProperty.setShopId(wxPropertyContract.getShopId()); | |||||
| //wxBillProperty.setShopId(wxPropertyContract.getShopId()); | |||||
| wxBillProperty.setCreatetime(date); | wxBillProperty.setCreatetime(date); | ||||
| wxBillProperty.setUpdatetime(date); | wxBillProperty.setUpdatetime(date); | ||||
| wxBillProperty.setIsDel(EnumDelStatus.NOT_DEL.getCode()); | wxBillProperty.setIsDel(EnumDelStatus.NOT_DEL.getCode()); | ||||
| @@ -882,37 +885,36 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| } | } | ||||
| } | } | ||||
| @Override | |||||
| @Transactional(rollbackFor = {Exception.class}) | |||||
| public Object getRentContractStatusInfo(WxPropertyContract record) { | |||||
| Map<String, Object> resultData = new HashMap(); | |||||
| //商铺信息 | |||||
| WxShop wxShop = new WxShop(); | |||||
| wxShop.updateTenantInfo(record); | |||||
| wxShop.setType(record.getRentShopType()); | |||||
| wxShop.setStatus(EnumShopStatus.RENT.getCode()); | |||||
| List<WxShop> rentedList = wxShopMapper.findList(wxShop); | |||||
| wxShop.setStatus(EnumShopStatus.NOT_RENT.getCode()); | |||||
| List<WxShop> unrentedList = wxShopMapper.findList(wxShop); | |||||
| HashMap<String, Object> shopMap = new HashMap<>(3); | |||||
| int rentedCount = rentedList.size(); | |||||
| int unrentedCount = unrentedList.size(); | |||||
| shopMap.put("rentedCount",rentedCount); | |||||
| shopMap.put("unrentedCount",unrentedCount); | |||||
| shopMap.put("allCount",rentedCount+unrentedCount); | |||||
| resultData.put("shopCountInfo", shopMap); | |||||
| //需要更新的状态 | |||||
| resultData.putAll(updateStatus(record)); | |||||
| return resultData; | |||||
| } | |||||
| // @Override | |||||
| // @Transactional(rollbackFor = {Exception.class}) | |||||
| // public Object getRentContractStatusInfo(WxPropertyContract record) { | |||||
| // | |||||
| // Map<String, Object> resultData = new HashMap(); | |||||
| // //商铺信息 | |||||
| // WxShop wxShop = new WxShop(); | |||||
| // wxShop.updateTenantInfo(record); | |||||
| // wxShop.setType(record.getRentShopType()); | |||||
| // wxShop.setStatus(EnumShopStatus.RENT.getCode()); | |||||
| // List<WxShop> rentedList = wxShopMapper.findList(wxShop); | |||||
| // wxShop.setStatus(EnumShopStatus.NOT_RENT.getCode()); | |||||
| // List<WxShop> unrentedList = wxShopMapper.findList(wxShop); | |||||
| // | |||||
| // HashMap<String, Object> shopMap = new HashMap<>(3); | |||||
| // int rentedCount = rentedList.size(); | |||||
| // int unrentedCount = unrentedList.size(); | |||||
| // shopMap.put("rentedCount",rentedCount); | |||||
| // shopMap.put("unrentedCount",unrentedCount); | |||||
| // shopMap.put("allCount",rentedCount+unrentedCount); | |||||
| // resultData.put("shopCountInfo", shopMap); | |||||
| // | |||||
| // //需要更新的状态 | |||||
| // resultData.putAll(updateStatus(record)); | |||||
| // return resultData; | |||||
| // } | |||||
| @Transactional(rollbackFor = {Exception.class}) | @Transactional(rollbackFor = {Exception.class}) | ||||
| @Override | @Override | ||||
| public ResultData endRentContract(Long id) { | public ResultData endRentContract(Long id) { | ||||
| WxPropertyContract wxPropertyContract = wxPropertyContractMapper.selectById(id); | WxPropertyContract wxPropertyContract = wxPropertyContractMapper.selectById(id); | ||||
| if (wxPropertyContract == null) { | if (wxPropertyContract == null) { | ||||
| return new ResultData(ErrorCode.PROPERTY_CONTRACT_IS_NOT_FOUND); | return new ResultData(ErrorCode.PROPERTY_CONTRACT_IS_NOT_FOUND); | ||||
| @@ -921,6 +923,12 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| try { | try { | ||||
| wxPropertyContract.setUpdatetime(new Date()); | wxPropertyContract.setUpdatetime(new Date()); | ||||
| wxPropertyContractMapper.updateById(wxPropertyContract); | wxPropertyContractMapper.updateById(wxPropertyContract); | ||||
| //物业账单失效 | |||||
| WxBillProperty billProperty = new WxBillProperty(); | |||||
| billProperty.setPropertyContractId(id); | |||||
| wxBillPropertyMapper.updateInvalidStatus(billProperty); | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.info("终止合同失败:" + e.getMessage()); | logger.info("终止合同失败:" + e.getMessage()); | ||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | ||||
| @@ -929,39 +937,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| } | } | ||||
| @Override | |||||
| public Object getRentContractList(WxPropertyContract record) { | |||||
| Map<String, Object> params = new HashMap<>(); | |||||
| params.put("tenantId", record.getTenantId()); | |||||
| params.put("rentShopType", record.getRentShopType()); | |||||
| List<WxRentContract> contractList; | |||||
| if (record.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { | |||||
| contractList = wxPropertyContractMapper.getRentContractListByShop(params); | |||||
| } else { | |||||
| contractList = wxPropertyContractMapper.getRentContractListByPoint(params); | |||||
| } | |||||
| return contractList; | |||||
| } | |||||
| @Override | |||||
| public ResultData endPropertyContractByRentContractId(Long rentContractId) { | |||||
| WxPropertyContract wxPropertyContractParam = new WxPropertyContract(); | |||||
| wxPropertyContractParam.setRentContractId(rentContractId); | |||||
| List<Map<String, Object>> contractData = wxPropertyContractMapper.queryPropertyContractData(wxPropertyContractParam); | |||||
| if (contractData.size() == 0) { | |||||
| return new ResultData(ErrorCode.PROPERTY_CONTRACT_IS_NOT_FOUND); | |||||
| } | |||||
| Map<String, Object> contractMap = contractData.get(0); | |||||
| WxPropertyContract wxPropertyContract = wxPropertyContractMapper.selectById((Long) contractMap.get("id")); | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); | |||||
| try { | |||||
| wxPropertyContractMapper.updateById(wxPropertyContract); | |||||
| } catch (MallinkException e) { | |||||
| logger.info("终止合同失败:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| } | |||||
| return new ResultData(Result.SUCCESS, "操作成功"); | |||||
| } | |||||
| // @Override | |||||
| // public Object getRentContractList(WxPropertyContract record) { | |||||
| // Map<String, Object> params = new HashMap<>(); | |||||
| // params.put("tenantId", record.getTenantId()); | |||||
| // params.put("rentShopType", record.getRentShopType()); | |||||
| // List<WxRentContract> contractList; | |||||
| // if (record.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { | |||||
| // contractList = wxPropertyContractMapper.getRentContractListByShop(params); | |||||
| // } else { | |||||
| // contractList = wxPropertyContractMapper.getRentContractListByPoint(params); | |||||
| // } | |||||
| // return contractList; | |||||
| // } | |||||
| @Override | @Override | ||||
| public ResultData hasRentContract(Long rentContractId) { | public ResultData hasRentContract(Long rentContractId) { | ||||
| @@ -976,9 +964,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { | if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { | ||||
| wxPropertyContract.setMerchantId(wxRentContract.getMerchantId()); | wxPropertyContract.setMerchantId(wxRentContract.getMerchantId()); | ||||
| } | } | ||||
| if (wxRentContract.shopIdsByRentInfo().size()==0) { | |||||
| wxPropertyContract.setShopId(wxRentContract.shopIdsByRentInfo().get(0)); | |||||
| } | |||||
| // if (wxRentContract.shopIdsByRentInfo().size()==0) { | |||||
| // wxPropertyContract.setShopId(wxRentContract.shopIdsByRentInfo().get(0)); | |||||
| // } | |||||
| List<WxPropertyContract> select = wxPropertyContractMapper.selectList(new QueryWrapper(wxPropertyContract)); | List<WxPropertyContract> select = wxPropertyContractMapper.selectList(new QueryWrapper(wxPropertyContract)); | ||||
| @@ -997,46 +985,46 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| return new ResultData(false); | return new ResultData(false); | ||||
| } | } | ||||
| @Override | |||||
| public Map<String, Object> updateStatus(WxPropertyContract record) { | |||||
| Map<String, Object> resultData = new HashMap(); | |||||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | |||||
| wxPropertyContract.updateTenantInfo(record); | |||||
| wxPropertyContract.setRentShopType(record.getRentShopType()); | |||||
| int allCount = wxPropertyContractMapper.selectCount(new QueryWrapper(wxPropertyContract)); | |||||
| resultData.put("allCount", allCount); | |||||
| //作废合同 | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.INVALID.getCode()); | |||||
| wxPropertyContractMapper.updateRentInvalidStatus(wxPropertyContract); | |||||
| //待签约 | |||||
| //wxPropertyContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); | |||||
| //wxPropertyContractMapper.updateRentWaitSignStatus(wxPropertyContract); | |||||
| //int waitSignCount = wxPropertyContractMapper.queryRentContractWaitSignStatus(wxPropertyContract); | |||||
| resultData.put("waitSignCount", 0); | |||||
| //计租中 | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.PAING.getCode()); | |||||
| wxPropertyContractMapper.updateRentContractPaidStatus(wxPropertyContract); | |||||
| int rendPaidCount = wxPropertyContractMapper.queryRentContractPaidStatus(wxPropertyContract); | |||||
| resultData.put("rendPaidCount", rendPaidCount); | |||||
| //将到期 | |||||
| //wxPropertyContract.setStatus(EnumRentContractStatus.CONTRACT_END_SOON.getCode()); | |||||
| //wxPropertyContractMapper.updateRentContractEndSoonStatus(wxPropertyContract); | |||||
| //int endSoonCount = wxPropertyContractMapper.queryRentContractEndSoonStatus(wxPropertyContract); | |||||
| resultData.put("endSoonCount", 0); | |||||
| //到期 | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.OUT_DATE.getCode()); | |||||
| int endCount = wxPropertyContractMapper.queryRentContractEndStatus(wxPropertyContract); | |||||
| wxPropertyContractMapper.updateRentContractEndStatus(wxPropertyContract); | |||||
| resultData.put("endCount", endCount); | |||||
| return resultData; | |||||
| } | |||||
| // @Override | |||||
| // public Map<String, Object> updateStatus(WxPropertyContract record) { | |||||
| // Map<String, Object> resultData = new HashMap(); | |||||
| // WxPropertyContract wxPropertyContract = new WxPropertyContract(); | |||||
| // wxPropertyContract.updateTenantInfo(record); | |||||
| // wxPropertyContract.setRentShopType(record.getRentShopType()); | |||||
| // | |||||
| // int allCount = wxPropertyContractMapper.selectCount(new QueryWrapper(wxPropertyContract)); | |||||
| // resultData.put("allCount", allCount); | |||||
| // | |||||
| // //作废合同 | |||||
| // wxPropertyContract.setStatus(EnumRentContractStatus.INVALID.getCode()); | |||||
| // wxPropertyContractMapper.updateRentInvalidStatus(wxPropertyContract); | |||||
| // | |||||
| // //待签约 | |||||
| // //wxPropertyContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); | |||||
| // //wxPropertyContractMapper.updateRentWaitSignStatus(wxPropertyContract); | |||||
| // //int waitSignCount = wxPropertyContractMapper.queryRentContractWaitSignStatus(wxPropertyContract); | |||||
| // resultData.put("waitSignCount", 0); | |||||
| // | |||||
| // //计租中 | |||||
| // wxPropertyContract.setStatus(EnumRentContractStatus.PAING.getCode()); | |||||
| // wxPropertyContractMapper.updateRentContractPaidStatus(wxPropertyContract); | |||||
| // int rendPaidCount = wxPropertyContractMapper.queryRentContractPaidStatus(wxPropertyContract); | |||||
| // resultData.put("rendPaidCount", rendPaidCount); | |||||
| // | |||||
| // //将到期 | |||||
| // //wxPropertyContract.setStatus(EnumRentContractStatus.CONTRACT_END_SOON.getCode()); | |||||
| // //wxPropertyContractMapper.updateRentContractEndSoonStatus(wxPropertyContract); | |||||
| // //int endSoonCount = wxPropertyContractMapper.queryRentContractEndSoonStatus(wxPropertyContract); | |||||
| // resultData.put("endSoonCount", 0); | |||||
| // | |||||
| // //到期 | |||||
| // wxPropertyContract.setStatus(EnumRentContractStatus.OUT_DATE.getCode()); | |||||
| // int endCount = wxPropertyContractMapper.queryRentContractEndStatus(wxPropertyContract); | |||||
| // wxPropertyContractMapper.updateRentContractEndStatus(wxPropertyContract); | |||||
| // resultData.put("endCount", endCount); | |||||
| // | |||||
| // return resultData; | |||||
| // } | |||||
| public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException { | public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException { | ||||
| URL url = new URL(urlStr); | URL url = new URL(urlStr); | ||||
| @@ -1474,52 +1474,66 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| @Transactional(rollbackFor = {Exception.class}) | @Transactional(rollbackFor = {Exception.class}) | ||||
| @Override | @Override | ||||
| public ResultData endRentContract(Long id, Integer status) { | |||||
| WxRentContract wxRentContract = wxRentContractMapper.selectById(id); | |||||
| if (wxRentContract == null) { | |||||
| public ResultData endContract(WxRentContract wxRentContract) { | |||||
| WxRentContract contract = wxRentContractMapper.selectById(wxRentContract.getId()); | |||||
| if (contract == null) { | |||||
| return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); | return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); | ||||
| } | } | ||||
| wxRentContract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); | |||||
| try { | |||||
| wxRentContract.setUpdatetime(new Date()); | |||||
| wxRentContractMapper.updateById(wxRentContract); | |||||
| //不停用商户 | |||||
| //wxMerchantService.disable(wxRentContract.getMerchantId()); | |||||
| //物业合同终止 | |||||
| if (status == 1) { | |||||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | |||||
| wxRentContract.updateTenantInfo(wxRentContract); | |||||
| wxPropertyContract.setRentContractId(id); | |||||
| List<Map<String, Object>> contractData = wxPropertyContractMapper.queryPropertyContractData(wxPropertyContract); | |||||
| if (contractData.size() > 0) { | |||||
| Map<String, Object> propertyContract = contractData.get(0); | |||||
| Long propertyContractId = (Long) propertyContract.get("id"); | |||||
| if (propertyContract != null && propertyContractId != null) { | |||||
| WxPropertyContract propertyContractUpdate = wxPropertyContractMapper.selectById(propertyContractId); | |||||
| propertyContractUpdate.setStatus(EnumRentContractStatus.TERMINATE.getCode()); | |||||
| propertyContractUpdate.setUpdatetime(new Date()); | |||||
| wxPropertyContractMapper.updateById(propertyContractUpdate); | |||||
| } | |||||
| } | |||||
| } | |||||
| } catch (MallinkException e) { | |||||
| logger.info("终止合同失败:" + e.getMessage()); | |||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||||
| contract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); | |||||
| contract.setUpdatetime(new Date()); | |||||
| wxRentContractMapper.updateById(contract); | |||||
| //终止租赁合同,同时终止物业合同 | |||||
| if(EnumEndProperty.END_RENT_AND_PROPERTY.getCode().equals(wxRentContract.getEndProperty())){ | |||||
| // WxPropertyContract wxPropertyContract = new WxPropertyContract(); | |||||
| // wxPropertyContract.setRentContractId(wxRentContract.getId()); | |||||
| // wxPropertyContract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); | |||||
| // wxPropertyContractMapper.updateStatusByRentContractId(wxPropertyContract); | |||||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | |||||
| wxRentContract.updateTenantInfo(wxRentContract); | |||||
| wxPropertyContract.setRentContractId(wxRentContract.getId()); | |||||
| //终止有效的合同 | |||||
| List<Integer> validstatuss = new ArrayList<Integer>(); | |||||
| validstatuss.add(EnumRentContractStatus.PAING.getCode()); | |||||
| validstatuss.add(EnumRentContractStatus.READY_FOR_PAING.getCode()); | |||||
| wxPropertyContract.setStatuss(validstatuss); | |||||
| wxPropertyContract.setUpdatetime(new Date()); | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); | |||||
| wxPropertyContractMapper.endContract(wxRentContract); | |||||
| //作废未生效的合同 | |||||
| List<Integer> unvalidstatuss = new ArrayList<Integer>(); | |||||
| unvalidstatuss.add(EnumRentContractStatus.DRAFT.getCode()); | |||||
| unvalidstatuss.add(EnumRentContractStatus.PERFORMANCE.getCode()); | |||||
| wxPropertyContract.setStatuss(unvalidstatuss); | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.INVALID.getCode()); | |||||
| wxPropertyContractMapper.endContract(wxRentContract); | |||||
| //物业账单失效 | |||||
| wxBillPropertyMapper.updateInvalidStatusByRent(wxRentContract); | |||||
| } | } | ||||
| return new ResultData(Result.SUCCESS, "操作成功"); | |||||
| //租赁账单失效 | |||||
| WxBillRent wxBillRent = new WxBillRent(); | |||||
| wxBillRent.setRentContractId(wxRentContract.getId()); | |||||
| wxBillRentMapper.updateInvalidStatus(wxBillRent); | |||||
| return new ResultData(Result.SUCCESS,"终止成功"); | |||||
| //解绑商户和商铺关系 | |||||
| // WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId()); | |||||
| // if(rentContract != null && rentContract.getMerchantId() != null){ | |||||
| // wxMerchantService.disable(rentContract.getMerchantId()); | |||||
| // } | |||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | @Transactional(rollbackFor = {Exception.class}) | ||||
| @Override | @Override | ||||
| public ResultData updateMerchant(WxRentContract wxRentContract) { | |||||
| WxRentContract record = wxRentContractMapper.selectById(wxRentContract); | |||||
| if (wxRentContract == null) { | |||||
| return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); | |||||
| } | |||||
| record.setMerchantId(wxRentContract.getMerchantId()); | |||||
| public ResultData updateRentContract(WxRentContract wxRentContract) { | |||||
| // WxRentContract record = wxRentContractMapper.selectById(wxRentContract); | |||||
| // if (wxRentContract == null) { | |||||
| // return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); | |||||
| // } | |||||
| // record.setMerchantId(wxRentContract.getMerchantId()); | |||||
| try { | try { | ||||
| wxRentContractMapper.updateById(record); | |||||
| wxRentContractMapper.updateById(wxRentContract); | |||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.info("关联合同商户失败:" + e.getMessage()); | logger.info("关联合同商户失败:" + e.getMessage()); | ||||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | ||||
| @@ -1575,32 +1589,32 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| // return resultData; | // return resultData; | ||||
| // } | // } | ||||
| @Override | |||||
| public void exportContract(HttpServletRequest request, HttpServletResponse response, Long id) { | |||||
| String contracType = "0"; | |||||
| String templatePath = null; | |||||
| Map<String, Object> result = null; | |||||
| if (EnumContractType.ALL.getCode().toString().equals(contracType)) { | |||||
| logger.info("获取租赁及物业合同数据"); | |||||
| result = getRentAndPropertyInfo(id); | |||||
| result.put("contractType", EnumContractType.ALL.getMessage()); | |||||
| if (EnumRentContractType.RENT_BY_AREA.getCode().equals(result.get("type"))) { | |||||
| templatePath = "contract-word-template/contract_rent_property.docx"; | |||||
| } else { | |||||
| templatePath = "contract-word-template/contract_rent_property_by_ratio.docx"; | |||||
| } | |||||
| logger.info("租赁及物业合同数据结果:" + result); | |||||
| } | |||||
| if (templatePath == null) { | |||||
| logger.info("没有租赁及物业合同模板"); | |||||
| return; | |||||
| } | |||||
| String filepath = fmUploadDir; | |||||
| String filename = UUID.randomUUID() + ".docx"; | |||||
| String exportFileName = result.get("merchantName").toString() + "合同.docx"; | |||||
| WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,null); | |||||
| } | |||||
| // @Override | |||||
| // public void exportContract(HttpServletRequest request, HttpServletResponse response, Long id) { | |||||
| // String contracType = "0"; | |||||
| // String templatePath = null; | |||||
| // Map<String, Object> result = null; | |||||
| // if (EnumContractType.ALL.getCode().toString().equals(contracType)) { | |||||
| // logger.info("获取租赁及物业合同数据"); | |||||
| // result = getRentAndPropertyInfo(id); | |||||
| // result.put("contractType", EnumContractType.ALL.getMessage()); | |||||
| // if (EnumRentContractType.RENT_BY_AREA.getCode().equals(result.get("type"))) { | |||||
| // templatePath = "contract-word-template/contract_rent_property.docx"; | |||||
| // } else { | |||||
| // templatePath = "contract-word-template/contract_rent_property_by_ratio.docx"; | |||||
| // } | |||||
| // logger.info("租赁及物业合同数据结果:" + result); | |||||
| // } | |||||
| // | |||||
| // if (templatePath == null) { | |||||
| // logger.info("没有租赁及物业合同模板"); | |||||
| // return; | |||||
| // } | |||||
| // String filepath = fmUploadDir; | |||||
| // String filename = UUID.randomUUID() + ".docx"; | |||||
| // String exportFileName = result.get("merchantName").toString() + "合同.docx"; | |||||
| // WordUtil.exportWord(templatePath, filepath, filename, exportFileName, result, request, response,null); | |||||
| // } | |||||
| @Override | @Override | ||||
| @Transactional(rollbackFor = {Exception.class}) | @Transactional(rollbackFor = {Exception.class}) | ||||
| @@ -1625,6 +1639,13 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| if (record == null) { | if (record == null) { | ||||
| return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); | return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND); | ||||
| } | } | ||||
| //如果合同状态为非正常状态,则不更新合同状态,并删除账单 | |||||
| if(record.getStatus().intValue() == EnumRentContractStatus.INVALID.getCode().intValue() | |||||
| || record.getStatus().intValue() == EnumRentContractStatus.TERMINATE.getCode().intValue()) { | |||||
| return new ResultData(ErrorCode.RENT_CONTRACT_IS_TERMINATED.getCode(),"合同状态已作废或者已终止."); | |||||
| } | |||||
| //更新合同状态为签约 | //更新合同状态为签约 | ||||
| WxRentContract wxRentContract = new WxRentContract(); | WxRentContract wxRentContract = new WxRentContract(); | ||||
| wxRentContract.setId(id); | wxRentContract.setId(id); | ||||
| @@ -1678,283 +1699,283 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| } | } | ||||
| } | } | ||||
| public Map<String, Object> getRentAndPropertyInfo(Long id) { | |||||
| logger.info("获取租赁物业合同数据>>>>>>id:" + id); | |||||
| Map<String, Object> result = new HashMap<>(); | |||||
| WxRentContract wxRentContract = wxRentContractMapper.selectById(id); | |||||
| if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { | |||||
| JSONArray jsonArray = JSONArray.parseArray(wxRentContract.getRentInfo()); | |||||
| StringBuffer shopNumberStr = new StringBuffer(); | |||||
| StringBuffer floorNameStr = new StringBuffer(); | |||||
| StringBuffer buildingNameStr = new StringBuffer(); | |||||
| StringBuffer buildAreaStr = new StringBuffer(); | |||||
| StringBuffer operationAreaStr = new StringBuffer(); | |||||
| for (int i = 0, size = jsonArray.size(); i < size; i++) { | |||||
| JSONObject jsonObject = jsonArray.getJSONObject(i); | |||||
| shopNumberStr.append("[").append(jsonObject.getString("shopNumber")).append("]"); | |||||
| floorNameStr.append("[").append(jsonObject.getString("floor")).append("]"); | |||||
| buildingNameStr.append("[").append(jsonObject.getString("building")).append("]"); | |||||
| buildAreaStr.append("[").append(jsonObject.getString("buildArea")).append("]"); | |||||
| operationAreaStr.append("[").append(jsonObject.getString("operationArea")).append("]"); | |||||
| } | |||||
| result.put("shopNumber", shopNumberStr); | |||||
| result.put("floorName", floorNameStr); | |||||
| result.put("buildingName", buildingNameStr); | |||||
| result.put("buildArea", buildAreaStr); | |||||
| result.put("operationArea", operationAreaStr); | |||||
| } else { | |||||
| //record.setId(wxRentContract.getShopId()); | |||||
| if (wxRentContract.shopIdsByRentInfo().size() == 0) { | |||||
| result.put("shopNumber", " "); | |||||
| result.put("floorName", " "); | |||||
| result.put("buildingName", " "); | |||||
| result.put("buildArea", " "); | |||||
| result.put("operationArea", " "); | |||||
| }else { | |||||
| WxShop record = new WxShop(); | |||||
| record.setIds(wxRentContract.shopIdsByRentInfo()); | |||||
| List<Map<String, Object>> wxShops = wxShopMapper.findListMap(record); | |||||
| if (!wxShops.isEmpty()) { | |||||
| //店铺信息 | |||||
| Map<String, Object> wxShop = wxShops.get(0); | |||||
| result.put("shopNumber", wxShop.get("shopNumber")); | |||||
| result.put("floorName", wxShop.get("floor")); | |||||
| result.put("buildingName", wxShop.get("building")); | |||||
| result.put("buildArea", wxShop.get("buildArea")); | |||||
| result.put("operationArea", wxShop.get("operationArea")); | |||||
| } | |||||
| } | |||||
| } | |||||
| //MALL信息 | |||||
| WxMall wxMall = new WxMall(); | |||||
| wxMall.setTenantInfo(wxRentContract); | |||||
| wxMall = wxMallMapper.findList(wxMall).get(0); | |||||
| result.put("mallName", wxMall.getName()); | |||||
| result.put("province", wxMall.getProvince()); | |||||
| result.put("city", wxMall.getCity()); | |||||
| //商户信息 | |||||
| WxMerchant merchant = wxMerchantService.getById(wxRentContract.getMerchantId()); | |||||
| //经营业态 | |||||
| wxRentContract.getMerchantId(); | |||||
| WxBusiness wxBusiness = wxBusinessMapper.selectById(merchant.getBusinessId()); | |||||
| result.put("business", wxBusiness.getTitle()); | |||||
| if (merchant != null) { | |||||
| result.put("merchantName", merchant.getName()); | |||||
| //法人信息 | |||||
| WxMerchantCorp wxMerchantCorp = merchant.getWxMerchantCorp(); | |||||
| result.put("corpPapersNumber", StringUtils.isNotEmpty(wxMerchantCorp.getCorpPapersNumber()) ? wxMerchantCorp.getCorpPapersNumber() : " "); | |||||
| result.put("corpPapersType", wxMerchantCorp.getCorpPapersType() != null ? EnumPapersType.getEnum(wxMerchantCorp.getCorpPapersType()).getMessage() : " "); | |||||
| result.put("corpPapersPerson", StringUtils.isNotEmpty(wxMerchantCorp.getCorpPapersPerson()) ? wxMerchantCorp.getCorpPapersPerson() : " "); | |||||
| //税务信息 | |||||
| WxMerchantTax wxMerchantTax = merchant.getWxMerchantTax(); | |||||
| result.put("taxPapersType", wxMerchantTax.getTaxPapersType() != null ? EnumTaxpayerType.getEnum(wxMerchantTax.getTaxPapersType()).getMessage() : " "); | |||||
| result.put("bankName", StringUtils.isNotEmpty(wxMerchantTax.getBankName()) ? wxMerchantTax.getBankName() : " "); | |||||
| result.put("bankAccount", StringUtils.isNotEmpty(wxMerchantTax.getBankAccount()) ? wxMerchantTax.getBankAccount() : " "); | |||||
| result.put("invoiceAddressPhone", StringUtils.isNotEmpty(wxMerchantTax.getInvoiceAddressPhone()) ? wxMerchantTax.getInvoiceAddressPhone() : " "); | |||||
| } else { | |||||
| result.put("merchantName", ""); | |||||
| //法人信息 | |||||
| result.put("corpPapersNumber", " "); | |||||
| result.put("corpPapersType", " "); | |||||
| result.put("corpPapersPerson", " "); | |||||
| //税务信息 | |||||
| result.put("taxPapersType", " "); | |||||
| result.put("bankName", " "); | |||||
| result.put("bankAccount", " "); | |||||
| result.put("invoiceAddressPhone", " "); | |||||
| } | |||||
| //租赁合同信息 | |||||
| String rentalStartDate = DateUtils.date2String(wxRentContract.getRentalStartDate(), "yyyy-MM-dd"); | |||||
| result.put("rentalStartDate", rentalStartDate); | |||||
| result.put("rentalStartDateYear", rentalStartDate.substring(0, 4)); | |||||
| result.put("rentalStartDateMonth", rentalStartDate.substring(5, 7)); | |||||
| result.put("rentalStartDateDay", rentalStartDate.substring(8)); | |||||
| String rentalEndDate = DateUtils.date2String(wxRentContract.getRentalEndDate(), "yyyy-MM-dd"); | |||||
| result.put("rentalEndDate", rentalEndDate); | |||||
| result.put("rentalEndDateYear", rentalEndDate.substring(0, 4)); | |||||
| result.put("rentalEndDateMonth", rentalEndDate.substring(5, 7)); | |||||
| result.put("rentalEndDateDay", rentalEndDate.substring(8)); | |||||
| result.put("price", wxRentContract.getPrice()); | |||||
| result.put("contractNumber", wxRentContract.getContractNumber()); | |||||
| Integer lease = wxRentContract.getLease(); | |||||
| Integer receivePeriod = wxRentContract.getReceivePeriod(); | |||||
| result.put("lease", lease); | |||||
| result.put("receivePeriod", receivePeriod); | |||||
| String payAccountStr = " "; | |||||
| if(wxRentContract.getPayAccount() != null && !wxRentContract.getPayAccount().equals("")) { | |||||
| payAccountStr = wxRentContract.getPayAccount(); | |||||
| } | |||||
| result.put("payAccount", payAccountStr); | |||||
| result.put("signDate", DateUtils.date2String(wxRentContract.getSignDate(), "yyyy-MM-dd")); | |||||
| //主体名称-乙方 | |||||
| if (StringUtils.isNotEmpty(wxRentContract.getSubjectName())) { | |||||
| result.put("corpPapersPerson", wxRentContract.getSubjectName()); | |||||
| } else { | |||||
| result.put("corpPapersPerson", " "); | |||||
| } | |||||
| //品牌 | |||||
| Long brandId = merchant.getBrand(); | |||||
| String brand = " "; | |||||
| if (brandId != null) { | |||||
| WxBrand wxBrand = WxBrandMapper.selectById(brandId); | |||||
| if (wxBrand != null) { | |||||
| brand = wxBrand.getName(); | |||||
| } | |||||
| } | |||||
| result.put("brand", brand); | |||||
| // TODO | |||||
| //double adjustRatio = wxRentContract.getAdjustRatio() != null ? wxRentContract.getAdjustRatio() / 100.0 : 0; | |||||
| result.put("adjustRatio", 0); | |||||
| double priceRent = new BigDecimal(wxRentContract.getPrice()) | |||||
| .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| result.put("priceRent", priceRent); | |||||
| if (!wxRentContract.getRentArea().equals("0")) { | |||||
| double unitPrice = new BigDecimal(wxRentContract.getPrice()) | |||||
| .divide(new BigDecimal(wxRentContract.getRentArea()), 2, RoundingMode.HALF_EVEN) | |||||
| .divide(new BigDecimal(100)) | |||||
| .setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| result.put("unitPriceRent", unitPrice); | |||||
| result.put("priceRentUpper", PriceUtil.digitUppercase(priceRent)); | |||||
| result.put("unitPriceRentUpper", PriceUtil.digitUppercase(unitPrice)); | |||||
| } else { | |||||
| result.put("unitPriceRent", 0); | |||||
| result.put("priceRentUpper", PriceUtil.digitUppercase(0)); | |||||
| result.put("unitPriceRentUpper", PriceUtil.digitUppercase(0)); | |||||
| } | |||||
| //租赁保证金 | |||||
| int cashDepositMonthRent = 3; | |||||
| double cashDepositRent = new BigDecimal(wxRentContract.getPrice()).multiply(new BigDecimal(cashDepositMonthRent)) | |||||
| .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| result.put("cashDepositMonthRent", cashDepositMonthRent); | |||||
| result.put("cashDepositRent", cashDepositRent); | |||||
| result.put("cashDepositRentUpper", PriceUtil.digitUppercase(cashDepositRent)); | |||||
| result.put("type", wxRentContract.getType()); | |||||
| int extralease = lease % 12; | |||||
| int extracount = extralease > 0 ? 1 : 0; | |||||
| int paycount = lease / 12 + extracount; | |||||
| int index = 10 - paycount; | |||||
| int count = paycount - 1; | |||||
| BigDecimal rentPrice = new BigDecimal(priceRent); | |||||
| //保底 | |||||
| if (wxRentContract.getRevenue() != null) { | |||||
| double revenue = new BigDecimal(wxRentContract.getRevenue()) | |||||
| .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| result.put("revenue", revenue); | |||||
| result.put("revenueUpper", PriceUtil.digitUppercase(revenue)); | |||||
| } else { | |||||
| result.put("revenue", 0); | |||||
| result.put("revenueUpper", PriceUtil.digitUppercase(0)); | |||||
| } | |||||
| if (!wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { | |||||
| areaWay(wxRentContract, result, lease, extralease, extracount, paycount, index, count, rentPrice); | |||||
| } else { | |||||
| ratioWay(wxRentContract, result, lease, extralease, extracount, paycount, index, count, rentPrice); | |||||
| } | |||||
| //物业合同信息 | |||||
| WxPropertyContract propertyContract = new WxPropertyContract(); | |||||
| propertyContract.updateTenantInfo(wxRentContract); | |||||
| propertyContract.setRentContractId(wxRentContract.getId()); | |||||
| // Optional<Map<String, Object>> first = wxPropertyContractMapper.queryPropertyContractData(propertyContract) | |||||
| // .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("status").equals(EnumRentContractStatus.INTENTION.getCode())).findFirst(); | |||||
| Optional<Map<String, Object>> first = wxPropertyContractMapper.queryPropertyContractData(propertyContract) | |||||
| .stream().filter(rc -> !rc.get("status").equals(EnumRentContractStatus.TERMINATE.getCode()) | |||||
| && !rc.get("status").equals(EnumRentContractStatus.INVALID.getCode()) | |||||
| && !rc.get("status").equals(EnumRentContractStatus.OUT_DATE.getCode())).findFirst(); | |||||
| Map<String, Object> wxPropertyContract = null; | |||||
| if (first.isPresent()) { | |||||
| wxPropertyContract = first.get(); | |||||
| } | |||||
| if (wxPropertyContract != null) { | |||||
| Integer receivePeriodProperty = (Integer) wxPropertyContract.get("receivePeriod"); | |||||
| result.put("receivePeriodProperty", receivePeriodProperty); | |||||
| double priceProperty = new BigDecimal(wxPropertyContract.get("price").toString()) | |||||
| .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| result.put("priceProperty", priceProperty); | |||||
| if (!wxRentContract.getRentArea().equals("0")) { | |||||
| double unitPriceProperty = new BigDecimal(wxPropertyContract.get("price").toString()) | |||||
| .divide(new BigDecimal(wxRentContract.getRentArea()), 2, RoundingMode.HALF_EVEN) | |||||
| .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| result.put("unitPriceProperty", unitPriceProperty); | |||||
| result.put("pricePropertyUpper", PriceUtil.digitUppercase(priceProperty)); | |||||
| result.put("unitPricePropertyUpper", PriceUtil.digitUppercase(unitPriceProperty)); | |||||
| } else { | |||||
| result.put("unitPriceProperty", 0); | |||||
| result.put("pricePropertyUpper", PriceUtil.digitUppercase(0)); | |||||
| result.put("unitPricePropertyUpper", PriceUtil.digitUppercase(0)); | |||||
| } | |||||
| //首期物业费 | |||||
| Calendar instance = Calendar.getInstance(); | |||||
| instance.setTime(wxRentContract.getRentalStartDate()); | |||||
| instance.add(Calendar.MONTH, 0); | |||||
| Date starttime = instance.getTime(); | |||||
| String startdate = DateUtils.date2String(starttime, "yyyy-MM-dd"); | |||||
| result.put("rentalStartDateProperty", startdate); | |||||
| result.put("rentalStartDateYearProperty", startdate.substring(0, 4)); | |||||
| result.put("rentalStartDateMonthProperty", startdate.substring(5, 7)); | |||||
| result.put("rentalStartDateDayProperty", startdate.substring(8)); | |||||
| //结束时间 | |||||
| instance.clear(); | |||||
| instance.setTime(starttime); | |||||
| instance.add(Calendar.MONTH, receivePeriodProperty); | |||||
| instance.add(Calendar.DAY_OF_MONTH, -1); | |||||
| Date endtime = instance.getTime(); | |||||
| String enddate = DateUtils.date2String(endtime, "yyyy-MM-dd"); | |||||
| result.put("rentalEndDateProperty", enddate); | |||||
| result.put("rentalEndDateYearProperty", enddate.substring(0, 4)); | |||||
| result.put("rentalEndDateMonthProperty", enddate.substring(5, 7)); | |||||
| result.put("rentalEndDateDayProperty", enddate.substring(8)); | |||||
| double pricePropertyFirst = new BigDecimal(priceProperty) | |||||
| .multiply(new BigDecimal(receivePeriodProperty)) | |||||
| .setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| result.put("pricePropertyFirst", pricePropertyFirst); | |||||
| result.put("pricePropertyFirstUpper", PriceUtil.digitUppercase(pricePropertyFirst)); | |||||
| //物业保证金 | |||||
| int cashDepositMonthProperty = 3; | |||||
| double cashDepositProperty = new BigDecimal(wxPropertyContract.get("price").toString()).multiply(new BigDecimal(cashDepositMonthProperty)) | |||||
| .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| result.put("cashDepositMonthProperty", cashDepositMonthProperty); | |||||
| result.put("cashDepositProperty", cashDepositProperty); | |||||
| result.put("cashDepositPropertyUpper", PriceUtil.digitUppercase(cashDepositProperty)); | |||||
| } else { | |||||
| result.put("receivePeriodProperty", " "); | |||||
| result.put("priceProperty", " "); | |||||
| result.put("unitPriceProperty", " "); | |||||
| result.put("pricePropertyUpper", " "); | |||||
| result.put("unitPricePropertyUpper", " "); | |||||
| //首期物业费 | |||||
| result.put("rentalStartDateProperty", " "); | |||||
| result.put("rentalStartDateYearProperty", " "); | |||||
| result.put("rentalStartDateMonthProperty", " "); | |||||
| result.put("rentalStartDateDayProperty", " "); | |||||
| //结束时间 | |||||
| result.put("rentalEndDateProperty", " "); | |||||
| result.put("rentalEndDateYearProperty", " "); | |||||
| result.put("rentalEndDateMonthProperty", " "); | |||||
| result.put("rentalEndDateDayProperty", " "); | |||||
| result.put("pricePropertyFirst", " "); | |||||
| result.put("pricePropertyFirstUpper", " "); | |||||
| //物业保证金 | |||||
| result.put("cashDepositMonthProperty", " "); | |||||
| result.put("cashDepositProperty", " "); | |||||
| result.put("cashDepositPropertyUpper", " "); | |||||
| } | |||||
| return result; | |||||
| } | |||||
| // public Map<String, Object> getRentAndPropertyInfo(Long id) { | |||||
| // logger.info("获取租赁物业合同数据>>>>>>id:" + id); | |||||
| // Map<String, Object> result = new HashMap<>(); | |||||
| // WxRentContract wxRentContract = wxRentContractMapper.selectById(id); | |||||
| // if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { | |||||
| // JSONArray jsonArray = JSONArray.parseArray(wxRentContract.getRentInfo()); | |||||
| // StringBuffer shopNumberStr = new StringBuffer(); | |||||
| // StringBuffer floorNameStr = new StringBuffer(); | |||||
| // StringBuffer buildingNameStr = new StringBuffer(); | |||||
| // StringBuffer buildAreaStr = new StringBuffer(); | |||||
| // StringBuffer operationAreaStr = new StringBuffer(); | |||||
| // for (int i = 0, size = jsonArray.size(); i < size; i++) { | |||||
| // JSONObject jsonObject = jsonArray.getJSONObject(i); | |||||
| // shopNumberStr.append("[").append(jsonObject.getString("shopNumber")).append("]"); | |||||
| // floorNameStr.append("[").append(jsonObject.getString("floor")).append("]"); | |||||
| // buildingNameStr.append("[").append(jsonObject.getString("building")).append("]"); | |||||
| // buildAreaStr.append("[").append(jsonObject.getString("buildArea")).append("]"); | |||||
| // operationAreaStr.append("[").append(jsonObject.getString("operationArea")).append("]"); | |||||
| // } | |||||
| // result.put("shopNumber", shopNumberStr); | |||||
| // result.put("floorName", floorNameStr); | |||||
| // result.put("buildingName", buildingNameStr); | |||||
| // result.put("buildArea", buildAreaStr); | |||||
| // result.put("operationArea", operationAreaStr); | |||||
| // } else { | |||||
| // //record.setId(wxRentContract.getShopId()); | |||||
| // if (wxRentContract.shopIdsByRentInfo().size() == 0) { | |||||
| // result.put("shopNumber", " "); | |||||
| // result.put("floorName", " "); | |||||
| // result.put("buildingName", " "); | |||||
| // result.put("buildArea", " "); | |||||
| // result.put("operationArea", " "); | |||||
| // }else { | |||||
| // WxShop record = new WxShop(); | |||||
| // record.setIds(wxRentContract.shopIdsByRentInfo()); | |||||
| // List<Map<String, Object>> wxShops = wxShopMapper.findListMap(record); | |||||
| // if (!wxShops.isEmpty()) { | |||||
| // //店铺信息 | |||||
| // Map<String, Object> wxShop = wxShops.get(0); | |||||
| // result.put("shopNumber", wxShop.get("shopNumber")); | |||||
| // result.put("floorName", wxShop.get("floor")); | |||||
| // result.put("buildingName", wxShop.get("building")); | |||||
| // result.put("buildArea", wxShop.get("buildArea")); | |||||
| // result.put("operationArea", wxShop.get("operationArea")); | |||||
| // } | |||||
| // } | |||||
| // } | |||||
| // //MALL信息 | |||||
| // WxMall wxMall = new WxMall(); | |||||
| // wxMall.setTenantInfo(wxRentContract); | |||||
| // wxMall = wxMallMapper.findList(wxMall).get(0); | |||||
| // result.put("mallName", wxMall.getName()); | |||||
| // result.put("province", wxMall.getProvince()); | |||||
| // result.put("city", wxMall.getCity()); | |||||
| // | |||||
| // //商户信息 | |||||
| // WxMerchant merchant = wxMerchantService.getById(wxRentContract.getMerchantId()); | |||||
| // //经营业态 | |||||
| // wxRentContract.getMerchantId(); | |||||
| // WxBusiness wxBusiness = wxBusinessMapper.selectById(merchant.getBusinessId()); | |||||
| // result.put("business", wxBusiness.getTitle()); | |||||
| // | |||||
| // if (merchant != null) { | |||||
| // result.put("merchantName", merchant.getName()); | |||||
| // //法人信息 | |||||
| // WxMerchantCorp wxMerchantCorp = merchant.getWxMerchantCorp(); | |||||
| // result.put("corpPapersNumber", StringUtils.isNotEmpty(wxMerchantCorp.getCorpPapersNumber()) ? wxMerchantCorp.getCorpPapersNumber() : " "); | |||||
| // result.put("corpPapersType", wxMerchantCorp.getCorpPapersType() != null ? EnumPapersType.getEnum(wxMerchantCorp.getCorpPapersType()).getMessage() : " "); | |||||
| // result.put("corpPapersPerson", StringUtils.isNotEmpty(wxMerchantCorp.getCorpPapersPerson()) ? wxMerchantCorp.getCorpPapersPerson() : " "); | |||||
| // //税务信息 | |||||
| // WxMerchantTax wxMerchantTax = merchant.getWxMerchantTax(); | |||||
| // result.put("taxPapersType", wxMerchantTax.getTaxPapersType() != null ? EnumTaxpayerType.getEnum(wxMerchantTax.getTaxPapersType()).getMessage() : " "); | |||||
| // result.put("bankName", StringUtils.isNotEmpty(wxMerchantTax.getBankName()) ? wxMerchantTax.getBankName() : " "); | |||||
| // result.put("bankAccount", StringUtils.isNotEmpty(wxMerchantTax.getBankAccount()) ? wxMerchantTax.getBankAccount() : " "); | |||||
| // result.put("invoiceAddressPhone", StringUtils.isNotEmpty(wxMerchantTax.getInvoiceAddressPhone()) ? wxMerchantTax.getInvoiceAddressPhone() : " "); | |||||
| // } else { | |||||
| // result.put("merchantName", ""); | |||||
| // //法人信息 | |||||
| // result.put("corpPapersNumber", " "); | |||||
| // result.put("corpPapersType", " "); | |||||
| // result.put("corpPapersPerson", " "); | |||||
| // //税务信息 | |||||
| // result.put("taxPapersType", " "); | |||||
| // result.put("bankName", " "); | |||||
| // result.put("bankAccount", " "); | |||||
| // result.put("invoiceAddressPhone", " "); | |||||
| // } | |||||
| // //租赁合同信息 | |||||
| // String rentalStartDate = DateUtils.date2String(wxRentContract.getRentalStartDate(), "yyyy-MM-dd"); | |||||
| // result.put("rentalStartDate", rentalStartDate); | |||||
| // result.put("rentalStartDateYear", rentalStartDate.substring(0, 4)); | |||||
| // result.put("rentalStartDateMonth", rentalStartDate.substring(5, 7)); | |||||
| // result.put("rentalStartDateDay", rentalStartDate.substring(8)); | |||||
| // String rentalEndDate = DateUtils.date2String(wxRentContract.getRentalEndDate(), "yyyy-MM-dd"); | |||||
| // result.put("rentalEndDate", rentalEndDate); | |||||
| // result.put("rentalEndDateYear", rentalEndDate.substring(0, 4)); | |||||
| // result.put("rentalEndDateMonth", rentalEndDate.substring(5, 7)); | |||||
| // result.put("rentalEndDateDay", rentalEndDate.substring(8)); | |||||
| // result.put("price", wxRentContract.getPrice()); | |||||
| // result.put("contractNumber", wxRentContract.getContractNumber()); | |||||
| // Integer lease = wxRentContract.getLease(); | |||||
| // Integer receivePeriod = wxRentContract.getReceivePeriod(); | |||||
| // result.put("lease", lease); | |||||
| // result.put("receivePeriod", receivePeriod); | |||||
| // String payAccountStr = " "; | |||||
| // if(wxRentContract.getPayAccount() != null && !wxRentContract.getPayAccount().equals("")) { | |||||
| // payAccountStr = wxRentContract.getPayAccount(); | |||||
| // } | |||||
| // result.put("payAccount", payAccountStr); | |||||
| // result.put("signDate", DateUtils.date2String(wxRentContract.getSignDate(), "yyyy-MM-dd")); | |||||
| // //主体名称-乙方 | |||||
| // if (StringUtils.isNotEmpty(wxRentContract.getSubjectName())) { | |||||
| // result.put("corpPapersPerson", wxRentContract.getSubjectName()); | |||||
| // } else { | |||||
| // result.put("corpPapersPerson", " "); | |||||
| // } | |||||
| // | |||||
| // //品牌 | |||||
| // Long brandId = merchant.getBrand(); | |||||
| // String brand = " "; | |||||
| // if (brandId != null) { | |||||
| // WxBrand wxBrand = WxBrandMapper.selectById(brandId); | |||||
| // if (wxBrand != null) { | |||||
| // brand = wxBrand.getName(); | |||||
| // } | |||||
| // } | |||||
| // result.put("brand", brand); | |||||
| // // TODO | |||||
| // //double adjustRatio = wxRentContract.getAdjustRatio() != null ? wxRentContract.getAdjustRatio() / 100.0 : 0; | |||||
| // result.put("adjustRatio", 0); | |||||
| // double priceRent = new BigDecimal(wxRentContract.getPrice()) | |||||
| // .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| // result.put("priceRent", priceRent); | |||||
| // if (!wxRentContract.getRentArea().equals("0")) { | |||||
| // double unitPrice = new BigDecimal(wxRentContract.getPrice()) | |||||
| // .divide(new BigDecimal(wxRentContract.getRentArea()), 2, RoundingMode.HALF_EVEN) | |||||
| // .divide(new BigDecimal(100)) | |||||
| // .setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| // result.put("unitPriceRent", unitPrice); | |||||
| // result.put("priceRentUpper", PriceUtil.digitUppercase(priceRent)); | |||||
| // result.put("unitPriceRentUpper", PriceUtil.digitUppercase(unitPrice)); | |||||
| // } else { | |||||
| // result.put("unitPriceRent", 0); | |||||
| // result.put("priceRentUpper", PriceUtil.digitUppercase(0)); | |||||
| // result.put("unitPriceRentUpper", PriceUtil.digitUppercase(0)); | |||||
| // } | |||||
| // | |||||
| // //租赁保证金 | |||||
| // int cashDepositMonthRent = 3; | |||||
| // double cashDepositRent = new BigDecimal(wxRentContract.getPrice()).multiply(new BigDecimal(cashDepositMonthRent)) | |||||
| // .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| // result.put("cashDepositMonthRent", cashDepositMonthRent); | |||||
| // result.put("cashDepositRent", cashDepositRent); | |||||
| // result.put("cashDepositRentUpper", PriceUtil.digitUppercase(cashDepositRent)); | |||||
| // result.put("type", wxRentContract.getType()); | |||||
| // int extralease = lease % 12; | |||||
| // int extracount = extralease > 0 ? 1 : 0; | |||||
| // int paycount = lease / 12 + extracount; | |||||
| // int index = 10 - paycount; | |||||
| // int count = paycount - 1; | |||||
| // BigDecimal rentPrice = new BigDecimal(priceRent); | |||||
| // //保底 | |||||
| // if (wxRentContract.getRevenue() != null) { | |||||
| // double revenue = new BigDecimal(wxRentContract.getRevenue()) | |||||
| // .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| // result.put("revenue", revenue); | |||||
| // result.put("revenueUpper", PriceUtil.digitUppercase(revenue)); | |||||
| // } else { | |||||
| // result.put("revenue", 0); | |||||
| // result.put("revenueUpper", PriceUtil.digitUppercase(0)); | |||||
| // } | |||||
| // if (!wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { | |||||
| // areaWay(wxRentContract, result, lease, extralease, extracount, paycount, index, count, rentPrice); | |||||
| // } else { | |||||
| // ratioWay(wxRentContract, result, lease, extralease, extracount, paycount, index, count, rentPrice); | |||||
| // } | |||||
| // //物业合同信息 | |||||
| // WxPropertyContract propertyContract = new WxPropertyContract(); | |||||
| // propertyContract.updateTenantInfo(wxRentContract); | |||||
| // propertyContract.setRentContractId(wxRentContract.getId()); | |||||
| //// Optional<Map<String, Object>> first = wxPropertyContractMapper.queryPropertyContractData(propertyContract) | |||||
| //// .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("status").equals(EnumRentContractStatus.INTENTION.getCode())).findFirst(); | |||||
| // Optional<Map<String, Object>> first = wxPropertyContractMapper.queryPropertyContractData(propertyContract) | |||||
| // .stream().filter(rc -> !rc.get("status").equals(EnumRentContractStatus.TERMINATE.getCode()) | |||||
| // && !rc.get("status").equals(EnumRentContractStatus.INVALID.getCode()) | |||||
| // && !rc.get("status").equals(EnumRentContractStatus.OUT_DATE.getCode())).findFirst(); | |||||
| // Map<String, Object> wxPropertyContract = null; | |||||
| // if (first.isPresent()) { | |||||
| // wxPropertyContract = first.get(); | |||||
| // } | |||||
| // if (wxPropertyContract != null) { | |||||
| // Integer receivePeriodProperty = (Integer) wxPropertyContract.get("receivePeriod"); | |||||
| // result.put("receivePeriodProperty", receivePeriodProperty); | |||||
| // double priceProperty = new BigDecimal(wxPropertyContract.get("price").toString()) | |||||
| // .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| // result.put("priceProperty", priceProperty); | |||||
| // if (!wxRentContract.getRentArea().equals("0")) { | |||||
| // double unitPriceProperty = new BigDecimal(wxPropertyContract.get("price").toString()) | |||||
| // .divide(new BigDecimal(wxRentContract.getRentArea()), 2, RoundingMode.HALF_EVEN) | |||||
| // .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| // result.put("unitPriceProperty", unitPriceProperty); | |||||
| // result.put("pricePropertyUpper", PriceUtil.digitUppercase(priceProperty)); | |||||
| // result.put("unitPricePropertyUpper", PriceUtil.digitUppercase(unitPriceProperty)); | |||||
| // } else { | |||||
| // result.put("unitPriceProperty", 0); | |||||
| // result.put("pricePropertyUpper", PriceUtil.digitUppercase(0)); | |||||
| // result.put("unitPricePropertyUpper", PriceUtil.digitUppercase(0)); | |||||
| // } | |||||
| // | |||||
| // //首期物业费 | |||||
| // Calendar instance = Calendar.getInstance(); | |||||
| // instance.setTime(wxRentContract.getRentalStartDate()); | |||||
| // instance.add(Calendar.MONTH, 0); | |||||
| // Date starttime = instance.getTime(); | |||||
| // String startdate = DateUtils.date2String(starttime, "yyyy-MM-dd"); | |||||
| // result.put("rentalStartDateProperty", startdate); | |||||
| // result.put("rentalStartDateYearProperty", startdate.substring(0, 4)); | |||||
| // result.put("rentalStartDateMonthProperty", startdate.substring(5, 7)); | |||||
| // result.put("rentalStartDateDayProperty", startdate.substring(8)); | |||||
| // //结束时间 | |||||
| // instance.clear(); | |||||
| // instance.setTime(starttime); | |||||
| // instance.add(Calendar.MONTH, receivePeriodProperty); | |||||
| // instance.add(Calendar.DAY_OF_MONTH, -1); | |||||
| // Date endtime = instance.getTime(); | |||||
| // String enddate = DateUtils.date2String(endtime, "yyyy-MM-dd"); | |||||
| // result.put("rentalEndDateProperty", enddate); | |||||
| // result.put("rentalEndDateYearProperty", enddate.substring(0, 4)); | |||||
| // result.put("rentalEndDateMonthProperty", enddate.substring(5, 7)); | |||||
| // result.put("rentalEndDateDayProperty", enddate.substring(8)); | |||||
| // double pricePropertyFirst = new BigDecimal(priceProperty) | |||||
| // .multiply(new BigDecimal(receivePeriodProperty)) | |||||
| // .setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| // result.put("pricePropertyFirst", pricePropertyFirst); | |||||
| // result.put("pricePropertyFirstUpper", PriceUtil.digitUppercase(pricePropertyFirst)); | |||||
| // | |||||
| // | |||||
| // //物业保证金 | |||||
| // int cashDepositMonthProperty = 3; | |||||
| // double cashDepositProperty = new BigDecimal(wxPropertyContract.get("price").toString()).multiply(new BigDecimal(cashDepositMonthProperty)) | |||||
| // .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); | |||||
| // result.put("cashDepositMonthProperty", cashDepositMonthProperty); | |||||
| // result.put("cashDepositProperty", cashDepositProperty); | |||||
| // result.put("cashDepositPropertyUpper", PriceUtil.digitUppercase(cashDepositProperty)); | |||||
| // | |||||
| // | |||||
| // } else { | |||||
| // result.put("receivePeriodProperty", " "); | |||||
| // result.put("priceProperty", " "); | |||||
| // result.put("unitPriceProperty", " "); | |||||
| // result.put("pricePropertyUpper", " "); | |||||
| // result.put("unitPricePropertyUpper", " "); | |||||
| // //首期物业费 | |||||
| // result.put("rentalStartDateProperty", " "); | |||||
| // result.put("rentalStartDateYearProperty", " "); | |||||
| // result.put("rentalStartDateMonthProperty", " "); | |||||
| // result.put("rentalStartDateDayProperty", " "); | |||||
| // //结束时间 | |||||
| // result.put("rentalEndDateProperty", " "); | |||||
| // result.put("rentalEndDateYearProperty", " "); | |||||
| // result.put("rentalEndDateMonthProperty", " "); | |||||
| // result.put("rentalEndDateDayProperty", " "); | |||||
| // result.put("pricePropertyFirst", " "); | |||||
| // result.put("pricePropertyFirstUpper", " "); | |||||
| // //物业保证金 | |||||
| // result.put("cashDepositMonthProperty", " "); | |||||
| // result.put("cashDepositProperty", " "); | |||||
| // result.put("cashDepositPropertyUpper", " "); | |||||
| // } | |||||
| // | |||||
| // | |||||
| // return result; | |||||
| // } | |||||
| public void ratioWay(WxRentContract wxRentContract, Map<String, Object> result, Integer lease, int extralease, int extracount, int paycount, int index, int count, BigDecimal rentPrice) { | public void ratioWay(WxRentContract wxRentContract, Map<String, Object> result, Integer lease, int extralease, int extracount, int paycount, int index, int count, BigDecimal rentPrice) { | ||||
| String adjustRatio = wxRentContract.getAdjustRatio(); | String adjustRatio = wxRentContract.getAdjustRatio(); | ||||
| @@ -2380,32 +2401,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| return list; | return list; | ||||
| } | } | ||||
| @Override | |||||
| public void endContract(WxRentContract wxRentContract) { | |||||
| wxRentContract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); | |||||
| wxRentContractMapper.updateStatus(wxRentContract); | |||||
| //终止租赁合同,同时终止物业合同 | |||||
| if(EnumEndProperty.END_RENT_AND_PROPERTY.getCode().equals(wxRentContract.getEndProperty())){ | |||||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | |||||
| wxPropertyContract.setRentContractId(wxRentContract.getId()); | |||||
| wxPropertyContract.setStatus(EnumRentContractStatus.TERMINATE.getCode()); | |||||
| wxPropertyContractMapper.updateStatusByRentContractId(wxPropertyContract); | |||||
| //物业账单失效 | |||||
| wxBillPropertyMapper.updateInvalidStatusByRent(wxRentContract); | |||||
| } | |||||
| //租赁账单失效 | |||||
| WxBillRent wxBillRent = new WxBillRent(); | |||||
| wxBillRent.setRentContractId(wxRentContract.getId()); | |||||
| wxBillRentMapper.updateInvalidStatus(wxBillRent); | |||||
| //解绑商户和商铺关系 | |||||
| WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId()); | |||||
| if(rentContract != null && rentContract.getMerchantId() != null){ | |||||
| wxMerchantService.disable(rentContract.getMerchantId()); | |||||
| } | |||||
| } | |||||
| @Override | @Override | ||||
| public WxRentContract getByBill(WxBillRent billRent) { | public WxRentContract getByBill(WxBillRent billRent) { | ||||
| @@ -2457,6 +2452,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| @Override | @Override | ||||
| public ResultData apply(WxRentContract wxRentContract,MallUserInfo user) { | public ResultData apply(WxRentContract wxRentContract,MallUserInfo user) { | ||||
| //如果存在其他的草稿状态或者履约驳回状态的合同,不允许提交审批 | |||||
| Integer count = wxRentContractMapper.getCanApplyCount(wxRentContract.getId()); | |||||
| if (null != count && count.intValue()>0) { | |||||
| return new ResultData(Result.ERROR, "当前存在其他草稿状态或者履约驳回的合同。清作废再提交审批。"); | |||||
| } | |||||
| WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId()); | WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId()); | ||||
| if (null == rentContract) { | if (null == rentContract) { | ||||
| return new ResultData(Result.ERROR, "编号["+wxRentContract.getId()+"]未找到租金合同"); | return new ResultData(Result.ERROR, "编号["+wxRentContract.getId()+"]未找到租金合同"); | ||||
| @@ -21,7 +21,6 @@ | |||||
| <result column="brand" jdbcType="VARCHAR" property="brand"/> | <result column="brand" jdbcType="VARCHAR" property="brand"/> | ||||
| <result column="business_id" jdbcType="INTEGER" property="businessId"/> | <result column="business_id" jdbcType="INTEGER" property="businessId"/> | ||||
| <result column="shop_type" jdbcType="INTEGER" property="shopType"/> | <result column="shop_type" jdbcType="INTEGER" property="shopType"/> | ||||
| <result column="shop_id" jdbcType="BIGINT" property="shopId"/> | |||||
| <result column="updatetime" jdbcType="TIMESTAMP" property="updatetime"/> | <result column="updatetime" jdbcType="TIMESTAMP" property="updatetime"/> | ||||
| <result column="createtime" jdbcType="TIMESTAMP" property="createtime"/> | <result column="createtime" jdbcType="TIMESTAMP" property="createtime"/> | ||||
| <result column="rent_area" jdbcType="VARCHAR" property="rentArea"/> | <result column="rent_area" jdbcType="VARCHAR" property="rentArea"/> | ||||
| @@ -53,7 +52,7 @@ | |||||
| `id`,`merchant_id`,`price`,`rental_start_date`,`rental_end_date`, | `id`,`merchant_id`,`price`,`rental_start_date`,`rental_end_date`, | ||||
| `sign_date`,`receive_period`,`tenant_id`,`parent_tenant_id`,`filepath`,`status`,`contract_number`, | `sign_date`,`receive_period`,`tenant_id`,`parent_tenant_id`,`filepath`,`status`,`contract_number`, | ||||
| `deposit`,`pay_date`,`is_del`,`merchant_name`,`brand`,`business_id`, | `deposit`,`pay_date`,`is_del`,`merchant_name`,`brand`,`business_id`, | ||||
| `shop_type`,`shop_id`,`updatetime`,`createtime`,`rent_area`, | |||||
| `shop_type`,`updatetime`,`createtime`,`rent_area`, | |||||
| `link_person`,`link_phone`,`pay_account`,`filename`,`lease`,`rent_contract_id`, | `link_person`,`link_phone`,`pay_account`,`filename`,`lease`,`rent_contract_id`, | ||||
| `start_date`,`end_date`,`apply_status`,`adjust_period`,`business_type`,adjust_ratio,`rent_info`, | `start_date`,`end_date`,`apply_status`,`adjust_period`,`business_type`,adjust_ratio,`rent_info`, | ||||
| `file_names`,price_unit,rent_price,subject_name,rent_start_type,`operation_type`,late_pay_ratio,late_pay_day | `file_names`,price_unit,rent_price,subject_name,rent_start_type,`operation_type`,late_pay_ratio,late_pay_day | ||||
| @@ -84,7 +83,6 @@ | |||||
| <if test=" null != brand ">and `brand` = #{brand}</if> | <if test=" null != brand ">and `brand` = #{brand}</if> | ||||
| <if test=" null != businessId ">and `business_id` = #{businessId}</if> | <if test=" null != businessId ">and `business_id` = #{businessId}</if> | ||||
| <if test=" null != shopType ">and `shop_type` = #{shopType}</if> | <if test=" null != shopType ">and `shop_type` = #{shopType}</if> | ||||
| <if test=" null != shopId ">and `shop_id` = #{shopId}</if> | |||||
| <if test=" null != updatetime ">and `updatetime` = #{updatetime}</if> | <if test=" null != updatetime ">and `updatetime` = #{updatetime}</if> | ||||
| <if test=" null != createtime ">and `createtime` = #{createtime}</if> | <if test=" null != createtime ">and `createtime` = #{createtime}</if> | ||||
| <if test=" null != rentArea ">and `rent_area` = #{rentArea}</if> | <if test=" null != rentArea ">and `rent_area` = #{rentArea}</if> | ||||
| @@ -115,7 +113,7 @@ | |||||
| <include refid="dynamicWhereConditions"/> | <include refid="dynamicWhereConditions"/> | ||||
| </select> | </select> | ||||
| <select id="queryPropertyContractData" resultType="hashmap" parameterType="com.iformall.domain.po.WxRentContract"> | |||||
| <!-- <select id="queryPropertyContractData" resultType="hashmap" parameterType="com.iformall.domain.po.WxRentContract"> | |||||
| select rc.id,rc.merchant_name merchantName,rc.rental_start_date rentalStartDate,rc.rental_end_date | select rc.id,rc.merchant_name merchantName,rc.rental_start_date rentalStartDate,rc.rental_end_date | ||||
| rentalEndDate,rc.`status`,rc.price,rc.contract_number contractNumber,s.shop_number shopNumber, | rentalEndDate,rc.`status`,rc.price,rc.contract_number contractNumber,s.shop_number shopNumber, | ||||
| f.floor_name floorName,b.building_name buildingName,receive_period receivePeriod, | f.floor_name floorName,b.building_name buildingName,receive_period receivePeriod, | ||||
| @@ -193,7 +191,7 @@ | |||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | <if test=" null != sortColumns"> order by ${sortColumns} </if> | ||||
| <if test=" null == sortColumns">order by rc.createtime desc,rc.id desc</if> | <if test=" null == sortColumns">order by rc.createtime desc,rc.id desc</if> | ||||
| </select> | |||||
| </select> --> | |||||
| <select id="queryRentContractWaitSignStatus" resultType="int" | <select id="queryRentContractWaitSignStatus" resultType="int" | ||||
| parameterType="com.iformall.domain.po.WxPropertyContract"> | parameterType="com.iformall.domain.po.WxPropertyContract"> | ||||
| @@ -285,7 +283,7 @@ | |||||
| and merchant_id is null | and merchant_id is null | ||||
| </update> | </update> | ||||
| <update id="updateRentInvalidStatus" parameterType="com.iformall.domain.po.WxPropertyContract"> | |||||
| <!-- <update id="updateRentInvalidStatus" parameterType="com.iformall.domain.po.WxPropertyContract"> | |||||
| update wx_property_contract set status=#{status} where shop_id in ( | update wx_property_contract set status=#{status} where shop_id in ( | ||||
| select s.shop_id from (SELECT shop_id FROM wx_property_contract WHERE merchant_id is not null and status!=6 | select s.shop_id from (SELECT shop_id FROM wx_property_contract WHERE merchant_id is not null and status!=6 | ||||
| <if test=" null != tenantId and '' != tenantId"> | <if test=" null != tenantId and '' != tenantId"> | ||||
| @@ -301,9 +299,9 @@ | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | <if test=" null != parentTenantId and '' != parentTenantId"> | ||||
| and `parent_tenant_id` = #{parentTenantId} | and `parent_tenant_id` = #{parentTenantId} | ||||
| </if> | </if> | ||||
| </update> | |||||
| </update> --> | |||||
| <select id="getRentContractListByShop" parameterType="hashmap" resultType="com.iformall.domain.po.WxRentContract"> | |||||
| <!-- <select id="getRentContractListByShop" parameterType="hashmap" resultType="com.iformall.domain.po.WxRentContract"> | |||||
| select rc.* from wx_rent_contract rc | select rc.* from wx_rent_contract rc | ||||
| where rc.status not in(0,1,5,6,7,8) | where rc.status not in(0,1,5,6,7,8) | ||||
| <if test=" null != tenantId and '' != tenantId"> | <if test=" null != tenantId and '' != tenantId"> | ||||
| @@ -322,9 +320,9 @@ | |||||
| </if> | </if> | ||||
| ) pc) | ) pc) | ||||
| <if test=" null != rentShopType ">and rent_shop_type = #{rentShopType}</if> | <if test=" null != rentShopType ">and rent_shop_type = #{rentShopType}</if> | ||||
| </select> | |||||
| </select> --> | |||||
| <select id="getRentContractListByPoint" parameterType="hashmap" resultType="com.iformall.domain.po.WxRentContract"> | |||||
| <!-- <select id="getRentContractListByPoint" parameterType="hashmap" resultType="com.iformall.domain.po.WxRentContract"> | |||||
| select rc.*,s.shop_number from wx_rent_contract rc | select rc.*,s.shop_number from wx_rent_contract rc | ||||
| inner join wx_shop s on rc.shop_id=s.id | inner join wx_shop s on rc.shop_id=s.id | ||||
| where rc.status not in(0,1,5,6,7,8) | where rc.status not in(0,1,5,6,7,8) | ||||
| @@ -344,7 +342,7 @@ | |||||
| </if> | </if> | ||||
| ) pc) | ) pc) | ||||
| <if test=" null != rentShopType ">and rent_shop_type = #{rentShopType}</if> | <if test=" null != rentShopType ">and rent_shop_type = #{rentShopType}</if> | ||||
| </select> | |||||
| </select> --> | |||||
| <update id="updateApplyStatus" parameterType="com.iformall.domain.po.WxPropertyContract"> | <update id="updateApplyStatus" parameterType="com.iformall.domain.po.WxPropertyContract"> | ||||
| @@ -386,4 +384,15 @@ | |||||
| select property_contract_id from wx_bill_property id = #{id} | select property_contract_id from wx_bill_property id = #{id} | ||||
| ) | ) | ||||
| </select> | </select> | ||||
| <update id="endContract" parameterType="com.iformall.domain.po.WxPropertyContract"> | |||||
| update wx_property_contract set status=#{status},updatetime = #{updatetime} where rent_contract_id =#{rentContractId} | |||||
| <if test=" null != statuss "> | |||||
| and status in | |||||
| <foreach collection="statuss" index="index" item="statusItem" open="(" separator="," close=")"> | |||||
| #{statusItem} | |||||
| </foreach> | |||||
| </if> | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||
| @@ -671,5 +671,10 @@ | |||||
| <select id="getContractByMerchant" resultType="com.iformall.domain.po.WxRentContract" parameterType="com.iformall.domain.po.WxRentContract"> | <select id="getContractByMerchant" resultType="com.iformall.domain.po.WxRentContract" parameterType="com.iformall.domain.po.WxRentContract"> | ||||
| select * from wx_rent_contract where merchant_id = #{merchantId} and status=3 | select * from wx_rent_contract where merchant_id = #{merchantId} and status=3 | ||||
| </select> | </select> | ||||
| <select id="getCanApplyCount" resultType="Integer" parameterType="Long"> | |||||
| select count(1) from wx_rent_contract where id != #{id} and (status=1 or (status=10 and apply_status=3) ) | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||