| @@ -136,13 +136,13 @@ public class WxPropertyContractController extends WxContractBaseController { | |||
| 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") | |||
| @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) | |||
| @@ -152,21 +152,21 @@ public class WxPropertyContractController extends WxContractBaseController { | |||
| 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") | |||
| @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()); | |||
| } | |||
| } | |||
| @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") | |||
| @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") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "merchantId", value = "merchantId", dataType = "Long", paramType = "query", required = true), | |||
| @@ -311,25 +292,7 @@ public class WxRentContractController extends WxContractBaseController { | |||
| } | |||
| 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(); | |||
| } | |||
| /** | |||
| * 作废 | |||
| * @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") | |||
| @SystemControllerLog(description = "获取商户列表") | |||
| @ApiImplicitParams({ | |||
| @@ -396,20 +473,6 @@ public class WxRentContractController extends WxContractBaseController { | |||
| 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 | |||
| @@ -449,23 +512,15 @@ public class WxRentContractController extends WxContractBaseController { | |||
| 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") | |||
| // @SystemControllerLog(description = "租赁合同-获取合同状态信息") | |||
| // 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") | |||
| @SystemControllerLog(description = "租赁合同-更新合同状态") | |||
| 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") | |||
| @SystemControllerLog(description = "租赁合同-通过合同编号查询信息") | |||
| 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") | |||
| private Integer status; | |||
| @TableField(exist = false) | |||
| private List<Integer> statuss; | |||
| @io.swagger.annotations.ApiModelProperty(value="合同编号",name="contractNumber") | |||
| private String contractNumber; | |||
| @@ -87,9 +89,6 @@ public class WxPropertyContract extends TenantEntity { | |||
| @io.swagger.annotations.ApiModelProperty(value="店铺类型:1直营店2加盟店3个体店4旗舰店",name="shopType") | |||
| private Integer shopType; | |||
| @io.swagger.annotations.ApiModelProperty(value="商铺ID",name="shopId") | |||
| private Long shopId; | |||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updatetime") | |||
| private Date updatetime; | |||
| @@ -131,6 +131,17 @@ public class WxShop extends TenantEntity { | |||
| @io.swagger.annotations.ApiModelProperty(value = "租金单位", name = "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.Map; | |||
| import org.apache.ibatis.annotations.Param; | |||
| /** | |||
| * @author gongbiao | |||
| */ | |||
| @@ -16,7 +18,7 @@ public interface WxPropertyContractMapper extends CommonMapper<WxPropertyContrac | |||
| List<WxPropertyContract> findList(WxPropertyContract wxPropertyContract); | |||
| List<Map<String,Object>> queryPropertyContractData(WxPropertyContract wxRentContract); | |||
| //List<Map<String,Object>> queryPropertyContractData(WxPropertyContract wxRentContract); | |||
| int queryRentContractWaitSignStatus(WxPropertyContract wxRentContract); | |||
| @@ -34,11 +36,11 @@ public interface WxPropertyContractMapper extends CommonMapper<WxPropertyContrac | |||
| 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); | |||
| @@ -53,4 +55,6 @@ public interface WxPropertyContractMapper extends CommonMapper<WxPropertyContrac | |||
| WxPropertyContract findOneByRentId(WxRentContract wxRentContract); | |||
| 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> getContractByMerchant(WxRentContract wxRentContract); | |||
| Integer getCanApplyCount(@Param("id") Long id); | |||
| } | |||
| @@ -52,14 +52,14 @@ public interface WxPropertyContractService { | |||
| void download(HttpServletRequest request, HttpServletResponse response); | |||
| Object getRentContractStatusInfo(WxPropertyContract record); | |||
| //Object getRentContractStatusInfo(WxPropertyContract record); | |||
| ResultData endRentContract(Long id); | |||
| Object getRentContractList(WxPropertyContract record); | |||
| //Object getRentContractList(WxPropertyContract record); | |||
| ResultData endPropertyContractByRentContractId(Long rentContractId); | |||
| //ResultData endPropertyContractByRentContractId(Long rentContractId); | |||
| ResultData hasRentContract(Long rentContractId); | |||
| @@ -71,7 +71,7 @@ public interface WxPropertyContractService { | |||
| 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); | |||
| @@ -60,13 +60,11 @@ public interface WxRentContractService { | |||
| //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); | |||
| 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); | |||
| @@ -90,7 +88,7 @@ public interface WxRentContractService { | |||
| //Integer getShopType(WxRentContract wxRentContract); | |||
| void endContract(WxRentContract wxRentContract); | |||
| ResultData endContract(WxRentContract wxRentContract); | |||
| void updatePropertyPreviewBill(WxRentContract record); | |||
| @@ -186,6 +186,7 @@ public class WxFlowServiceImpl implements WxFlowService { | |||
| rent.setBusinessType(flowType); | |||
| WxRentContract record = wxRentContractMapper.selectById(businessId); | |||
| //合并的合同-审批时 物业合同的状态肯定不在 签约中 避免更新物业合同时提示店铺存在 | |||
| if(record.getOperationType().equals(EnumContractOperationType.WHOLE.getCode())){ | |||
| WxPropertyContract wxPropertyContract = new WxPropertyContract(); | |||
| @@ -199,7 +200,10 @@ public class WxFlowServiceImpl implements WxFlowService { | |||
| //如果是提交审批 , 审批驳回状态不变 | |||
| 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()) { | |||
| wxRentContractService.updateRentContractStatus(businessId); | |||
| @@ -80,13 +80,12 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| public Map<String, Object> listAsPage(WxPropertyContract record, Integer pageIndex, Integer pageSize) { | |||
| //Object rentContractStatusInfo = getRentContractStatusInfo(record); | |||
| 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<>(); | |||
| PageInfo<WxPropertyContract> pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxPropertyContractMapper.findList(record)); | |||
| //result.put("rentContractStatusInfo", rentContractStatusInfo); | |||
| result.put("pageInfo", pageInfo); | |||
| return result; | |||
| } | |||
| @Override | |||
| @@ -160,15 +159,6 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| } else { | |||
| 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(); | |||
| @@ -187,6 +177,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| if (!select.isEmpty()) { | |||
| 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.setBusinessId(id); | |||
| @@ -239,7 +242,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| bill.setLatePayRatio(0); | |||
| bill.setPay(0L); | |||
| bill.setIsDel(EnumDelStatus.NOT_DEL.getCode()); | |||
| bill.setShopId(record.getShopId()); | |||
| //bill.setShopId(record.getShopId()); | |||
| bill.setExpiredDay(0L); | |||
| setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); | |||
| if (bill.getReceivePay().equals(0L)) { | |||
| @@ -264,9 +267,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| 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()); | |||
| if (wxRentContract != null) { | |||
| @@ -303,18 +306,18 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| 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; | |||
| boolean hasFlow = true; | |||
| @@ -489,7 +492,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| wxBillDeposit.updateTenantInfo(wxPropertyContract); | |||
| wxBillDeposit.setIsDel(0); | |||
| wxBillDeposit.setMerchantId(record.getMerchantId()); | |||
| wxBillDeposit.setShopId(wxPropertyContract.getShopId()); | |||
| //wxBillDeposit.setShopId(wxPropertyContract.getShopId()); | |||
| wxBillDeposit.setCreatetime(date); | |||
| wxBillDeposit.setUpdatetime(date); | |||
| wxBillDeposit.setIsDel(EnumDelStatus.NOT_DEL.getCode()); | |||
| @@ -688,7 +691,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| wxBillProperty.setIsDel(0); | |||
| wxBillProperty.setMerchantId(wxPropertyContract.getMerchantId()); | |||
| wxBillProperty.setUserId(userId); | |||
| wxBillProperty.setShopId(wxPropertyContract.getShopId()); | |||
| //wxBillProperty.setShopId(wxPropertyContract.getShopId()); | |||
| wxBillProperty.setCreatetime(date); | |||
| wxBillProperty.setUpdatetime(date); | |||
| 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}) | |||
| @Override | |||
| public ResultData endRentContract(Long id) { | |||
| WxPropertyContract wxPropertyContract = wxPropertyContractMapper.selectById(id); | |||
| if (wxPropertyContract == null) { | |||
| return new ResultData(ErrorCode.PROPERTY_CONTRACT_IS_NOT_FOUND); | |||
| @@ -921,6 +923,12 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| try { | |||
| wxPropertyContract.setUpdatetime(new Date()); | |||
| wxPropertyContractMapper.updateById(wxPropertyContract); | |||
| //物业账单失效 | |||
| WxBillProperty billProperty = new WxBillProperty(); | |||
| billProperty.setPropertyContractId(id); | |||
| wxBillPropertyMapper.updateInvalidStatus(billProperty); | |||
| } catch (MallinkException e) { | |||
| logger.info("终止合同失败:" + 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 | |||
| public ResultData hasRentContract(Long rentContractId) { | |||
| @@ -976,9 +964,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { | |||
| 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)); | |||
| @@ -997,46 +985,46 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||
| 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 { | |||
| URL url = new URL(urlStr); | |||
| @@ -1474,52 +1474,66 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| @Transactional(rollbackFor = {Exception.class}) | |||
| @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); | |||
| } | |||
| 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}) | |||
| @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 { | |||
| wxRentContractMapper.updateById(record); | |||
| wxRentContractMapper.updateById(wxRentContract); | |||
| } catch (MallinkException e) { | |||
| logger.info("关联合同商户失败:" + e.getMessage()); | |||
| throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); | |||
| @@ -1575,32 +1589,32 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| // 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 | |||
| @Transactional(rollbackFor = {Exception.class}) | |||
| @@ -1625,6 +1639,13 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| if (record == null) { | |||
| 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.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) { | |||
| String adjustRatio = wxRentContract.getAdjustRatio(); | |||
| @@ -2380,32 +2401,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| 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 | |||
| public WxRentContract getByBill(WxBillRent billRent) { | |||
| @@ -2457,6 +2452,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| @Override | |||
| 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()); | |||
| if (null == rentContract) { | |||
| return new ResultData(Result.ERROR, "编号["+wxRentContract.getId()+"]未找到租金合同"); | |||
| @@ -21,7 +21,6 @@ | |||
| <result column="brand" jdbcType="VARCHAR" property="brand"/> | |||
| <result column="business_id" jdbcType="INTEGER" property="businessId"/> | |||
| <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="createtime" jdbcType="TIMESTAMP" property="createtime"/> | |||
| <result column="rent_area" jdbcType="VARCHAR" property="rentArea"/> | |||
| @@ -53,7 +52,7 @@ | |||
| `id`,`merchant_id`,`price`,`rental_start_date`,`rental_end_date`, | |||
| `sign_date`,`receive_period`,`tenant_id`,`parent_tenant_id`,`filepath`,`status`,`contract_number`, | |||
| `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`, | |||
| `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 | |||
| @@ -84,7 +83,6 @@ | |||
| <if test=" null != brand ">and `brand` = #{brand}</if> | |||
| <if test=" null != businessId ">and `business_id` = #{businessId}</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 != createtime ">and `createtime` = #{createtime}</if> | |||
| <if test=" null != rentArea ">and `rent_area` = #{rentArea}</if> | |||
| @@ -115,7 +113,7 @@ | |||
| <include refid="dynamicWhereConditions"/> | |||
| </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 | |||
| rentalEndDate,rc.`status`,rc.price,rc.contract_number contractNumber,s.shop_number shopNumber, | |||
| 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 rc.createtime desc,rc.id desc</if> | |||
| </select> | |||
| </select> --> | |||
| <select id="queryRentContractWaitSignStatus" resultType="int" | |||
| parameterType="com.iformall.domain.po.WxPropertyContract"> | |||
| @@ -285,7 +283,7 @@ | |||
| and merchant_id is null | |||
| </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 ( | |||
| 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"> | |||
| @@ -301,9 +299,9 @@ | |||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||
| and `parent_tenant_id` = #{parentTenantId} | |||
| </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 | |||
| where rc.status not in(0,1,5,6,7,8) | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| @@ -322,9 +320,9 @@ | |||
| </if> | |||
| ) pc) | |||
| <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 | |||
| inner join wx_shop s on rc.shop_id=s.id | |||
| where rc.status not in(0,1,5,6,7,8) | |||
| @@ -344,7 +342,7 @@ | |||
| </if> | |||
| ) pc) | |||
| <if test=" null != rentShopType ">and rent_shop_type = #{rentShopType}</if> | |||
| </select> | |||
| </select> --> | |||
| <update id="updateApplyStatus" parameterType="com.iformall.domain.po.WxPropertyContract"> | |||
| @@ -386,4 +384,15 @@ | |||
| select property_contract_id from wx_bill_property id = #{id} | |||
| ) | |||
| </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> | |||
| @@ -671,5 +671,10 @@ | |||
| <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> | |||
| <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> | |||