Browse Source

Merge branch 'release_real_202008' of https://git.malls.iformall.com/server/formallProject into release_real_202008

release_toaliyun_real
xhxu 5 years ago
parent
commit
d9e87b83e6
13 changed files with 707 additions and 648 deletions
  1. +22
    -22
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java
  2. +135
    -97
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
  3. +3
    -4
      mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java
  4. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxShop.java
  5. +8
    -4
      mallinkService/src/main/java/com/iformall/mapper/WxPropertyContractMapper.java
  6. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java
  7. +4
    -4
      mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java
  8. +3
    -5
      mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
  9. +5
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
  10. +121
    -133
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  11. +368
    -367
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  12. +20
    -11
      mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml
  13. +5
    -0
      mallinkService/src/main/resources/mapper/WxRentContractMapper.xml

+ 22
- 22
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java View File

@@ -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)


+ 135
- 97
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java View File

@@ -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) {


+ 3
- 4
mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java View File

@@ -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;



+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxShop.java View File

@@ -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;
}


}

+ 8
- 4
mallinkService/src/main/java/com/iformall/mapper/WxPropertyContractMapper.java View File

@@ -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);
}

+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java View File

@@ -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);
}

+ 4
- 4
mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java View File

@@ -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);



+ 3
- 5
mallinkService/src/main/java/com/iformall/service/WxRentContractService.java View File

@@ -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);



+ 5
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java View File

@@ -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);


+ 121
- 133
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java View File

@@ -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);


+ 368
- 367
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java View File

@@ -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()+"]未找到租金合同");


+ 20
- 11
mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml View File

@@ -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>

+ 5
- 0
mallinkService/src/main/resources/mapper/WxRentContractMapper.xml View File

@@ -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>


Loading…
Cancel
Save