Просмотр исходного кода

fix contract

release_toaliyun_real
xiaohanzi 5 лет назад
Родитель
Сommit
f88ad4062a
5 измененных файлов: 152 добавлений и 69 удалений
  1. +16
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxContractBaseController.java
  2. +109
    -37
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java
  3. +7
    -5
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
  4. +8
    -1
      mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java
  5. +12
    -26
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java

+ 16
- 0
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxContractBaseController.java Просмотреть файл

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;

import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxFlowModel;
import com.iformall.domain.po.WxPropertyContract;
import com.iformall.domain.po.WxRentContract;
import com.iformall.enums.EnumFlowContractType;
import com.iformall.enums.EnumFlowKey;
@@ -56,4 +57,19 @@ public class WxContractBaseController extends BaseController{
}
return false;
}
protected boolean propertyContractHasWorkFlow(WxPropertyContract wxPropertyContract) {
WxFlowModel wxFlowModel = new WxFlowModel();
if (wxPropertyContract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) {
wxFlowModel.setFlowType(EnumFlowContractType.PROPERTY.getCode());
}else if (wxPropertyContract.getRentShopType().intValue() == EnumRentShopType.POINT.getCode().intValue()) {
wxFlowModel.setFlowType(EnumFlowContractType.PROPERTY_POINT.getCode());
}
wxFlowModel.updateTenantInfo(wxPropertyContract);
List<WxFlowModel> flows = wxFlowService.getModelBybusiness(wxFlowModel);
if (null != flows && flows.size() > 0) {
return true;
}
return false;
}
}

+ 109
- 37
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java Просмотреть файл

@@ -2,6 +2,7 @@ package com.iformall.controller.contract;

import com.iformall.annotation.SystemControllerLog;
import com.iformall.annotation.UserDataRuleAnnotation;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
@@ -9,10 +10,14 @@ import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.WxBillProperty;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxPropertyContract;
import com.iformall.domain.po.WxRentContract;
import com.iformall.enums.EnumContractType;
import com.iformall.enums.EnumFlowContractType;
import com.iformall.enums.EnumFlowKey;
import com.iformall.enums.EnumIsPreview;
import com.iformall.enums.EnumRentContractAppStatus;
import com.iformall.enums.EnumRentContractStatus;
import com.iformall.enums.EnumRentShopType;
import com.iformall.enums.EnumRentStartType;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.WxPropertyContractMapper;
@@ -28,6 +33,8 @@ import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.util.Date;
import java.util.List;
import java.util.Map;

@@ -53,7 +60,6 @@ public class WxPropertyContractController extends WxContractBaseController {
@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 list(@ModelAttribute WxPropertyContract wxPropertyContract, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxPropertyContractController::list");
if (null == wxPropertyContract) {
@@ -102,19 +108,9 @@ public class WxPropertyContractController extends WxContractBaseController {
return wxPropertyContractService.saveOrUpdate(wxPropertyContract, user.getId(), user.getName());

}

@GetMapping("/del")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
@SystemControllerLog(description = "物业合同-删除")
public ResultData delete(Long id) {
logger.debug("[" + getIpAddr() + "] WxPropertyContractController::delete");
wxPropertyContractService.deleteById(id);
return new ResultData(Result.SUCCESS, "删除成功", null);
}

@GetMapping("/findById")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
@SystemControllerLog(description = "物业合同-根据ID查询")
public ResultData findById(Long id) {
logger.debug("[" + getIpAddr() + "] WxPropertyContractController::findById");
WxBillProperty wxBillProperty = new WxBillProperty();
@@ -128,6 +124,106 @@ public class WxPropertyContractController extends WxContractBaseController {
return new ResultData(e.getErrorCode(), e.getMessage());
}
}
/**
* 作废
* @param wxRentContract
* @return
*/
@GetMapping("/unvalid")
@SystemControllerLog(description = "物业合同-作废合同")
public ResultData unvalid(@ModelAttribute WxPropertyContract proertyContract) {
WxPropertyContract contract = wxPropertyContractService.getSimpleDetail(proertyContract.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.getApplyStatus().intValue() == EnumRentContractAppStatus.SETBACK.getCode().intValue()))) {
contract.setStatus(EnumRentContractStatus.INVALID.getCode());
contract.setUpdatetime(new Date());
try {
wxPropertyContractService.updatePropertyContract(contract);
return new ResultData(contract);
}catch(Exception e) {
logger.error(" WxPropertyContract unvalid error.",e);
return new ResultData(Result.ERROR,"系统错误");
}
}else {
return new ResultData(Result.ERROR, "合同状态不允许作废.只能作废草稿或者履约拒绝的合同。");
}
}
/**
* 终止
* @param id
* @param status
* @return
*/
@PostMapping("endContract")
@SystemControllerLog(description = "物业合同-终止合同")
public ResultData endContract(@RequestBody WxPropertyContract proertyContract) {
proertyContract.updateTenantInfo(getTenantInfo());
wxPropertyContractService.endContract(proertyContract);
return new ResultData(proertyContract);
}
@GetMapping("effective")
@ApiImplicitParams({})
@SystemControllerLog(description = "物业合同-合同生效")
public ResultData effective(@ModelAttribute WxPropertyContract proertyContract) {
WxPropertyContract contract = wxPropertyContractService.getSimpleDetail(proertyContract.getId());
if (null == contract) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"物业合同不存在");
}
//查询是否有审批流程
if(propertyContractHasWorkFlow(contract)) {
return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"物业合同存在工作流,不允许直接生效。");
}
if (contract.getStatus().intValue() != EnumRentContractStatus.DRAFT.getCode().intValue()) {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"租赁合同状态为草稿才能进行此操作");
}
wxPropertyContractService.updatePropertyContractStatus(proertyContract.getId());
return new ResultData(Result.SUCCESS,"合同生效成功!");
}
@PostMapping("apply")
@SystemControllerLog(description = "物业合同-提交审批")
public ResultData apply(@ModelAttribute WxPropertyContract proertyContract) {
MallUserInfo user = getUser();
WxPropertyContract contract = wxPropertyContractService.getSimpleDetail(proertyContract.getId());
if (null == contract) {
return new ResultData(Result.ERROR, "编号["+contract.getId()+"]未找到租金合同");
}
//查询是否有审批流程
if(propertyContractHasWorkFlow(contract)) {
return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"租赁合同存在工作流,不允许直接生效。");
}
if (contract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) {
contract.setFlowParams(generateFlowParams(EnumFlowKey.NEW_PRO_CONTRACT, EnumFlowContractType.PROPERTY, contract.getRemark(), contract.getId()));
}else if (contract.getRentShopType().intValue() == EnumRentShopType.POINT.getCode().intValue()) {
contract.setFlowParams(generateFlowParams(EnumFlowKey.NEW_PRO_POINT_CONTRACT, EnumFlowContractType.PROPERTY_POINT, contract.getRemark(), contract.getId()));
}
return wxPropertyContractService.apply(contract,user);
}
@GetMapping("/del")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
@SystemControllerLog(description = "物业合同-删除")
public ResultData delete(Long id) {
logger.debug("[" + getIpAddr() + "] WxPropertyContractController::delete");
wxPropertyContractService.deleteById(id);
return new ResultData(Result.SUCCESS, "删除成功", null);
}



@RequestMapping("/download")
@SystemControllerLog(description = "物业合同-下载")
@@ -144,14 +240,6 @@ public class WxPropertyContractController extends WxContractBaseController {
// return new ResultData(Result.SUCCESS, "查询成功", wxPropertyContractService.getRentContractStatusInfo(wxPropertyContract));
// }

@GetMapping("/endPropertyContract")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
@SystemControllerLog(description = "物业合同-终止")
public ResultData endRentContract(Long id) {
logger.debug("[" + getIpAddr() + "] WxPropertyContractController::endRentContract");
return wxPropertyContractService.endRentContract(id);
}

// @GetMapping("/getRentContractList")
// @SystemControllerLog(description = "物业合同-查询列表")
// public ResultData getRentContractList(@ModelAttribute WxPropertyContract wxPropertyContract) {
@@ -184,15 +272,6 @@ public class WxPropertyContractController extends WxContractBaseController {
return wxPropertyContractService.updatePropertyContractStatus(wxPropertyContract.getId());
}

@PostMapping("endContract")
@SystemControllerLog(description = "物业合同-终止合同")
public ResultData endContract(@RequestBody WxPropertyContract wxPropertyContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract");
wxPropertyContract.updateTenantInfo(getTenantInfo());
wxPropertyContractService.endContract(wxPropertyContract);
return new ResultData();
}

/**
* 预览账单展示,编辑账期,后端生成账单金额
* @param wxPropertyContract
@@ -210,12 +289,5 @@ public class WxPropertyContractController extends WxContractBaseController {
List<WxBillProperty> result = wxPropertyContractService.buildProperty(new WxMerchant(),getUserId(),dbRent, EnumIsPreview.YES.getCode(), false);
return new ResultData(result);
}
@PostMapping("apply")
@SystemControllerLog(description = "物业合同-提交审批")
public ResultData apply(@RequestBody WxPropertyContract wxPropertyContract) {
MallUserInfo user = getUser();
wxPropertyContract.setFlowParams(generateFlowParams(EnumFlowKey.NEW_PRO_CONTRACT, EnumFlowContractType.PROPERTY, wxPropertyContract.getRemark(), wxPropertyContract.getId()));
return wxPropertyContractService.apply(wxPropertyContract, user);
}

}

+ 7
- 5
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java Просмотреть файл

@@ -328,9 +328,8 @@ public class WxRentContractController extends WxContractBaseController {
* @return
*/
@GetMapping("/unvalid")
@SystemControllerLog(description = "作废合同")
@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, "合同不存在.");
@@ -386,7 +385,7 @@ public class WxRentContractController extends WxContractBaseController {

@GetMapping("effective")
@ApiImplicitParams({})
@SystemControllerLog(description = "合同生效")
@SystemControllerLog(description = "租金合同-合同生效")
public ResultData effective(@ModelAttribute WxRentContract wxRentContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::getRentContractList");
WxRentContract contract = wxRentContractService.getSimpleDeatil(wxRentContract.getId());
@@ -423,8 +422,11 @@ public class WxRentContractController extends WxContractBaseController {
if(rentContractHasWorkFlow(rentContract)) {
return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"租赁合同存在工作流,不允许直接生效。");
}
rentContract.setFlowParams(generateFlowParams(EnumFlowKey.NEW_RENT_CONTRACT, EnumFlowContractType.RENT, wxRentContract.getRemark(), wxRentContract.getId()));
if (rentContract.getRentShopType().intValue() == EnumRentShopType.SHOP.getCode().intValue()) {
rentContract.setFlowParams(generateFlowParams(EnumFlowKey.NEW_RENT_CONTRACT, EnumFlowContractType.RENT, wxRentContract.getRemark(), wxRentContract.getId()));
}else if (rentContract.getRentShopType().intValue() == EnumRentShopType.POINT.getCode().intValue()) {
rentContract.setFlowParams(generateFlowParams(EnumFlowKey.NEW_SHOP_CONTRACT, EnumFlowContractType.RENT_POINT, wxRentContract.getRemark(), wxRentContract.getId()));
}
return wxRentContractService.apply(rentContract,user);
}


+ 8
- 1
mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java Просмотреть файл

@@ -9,6 +9,9 @@ import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxPropertyContract;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@@ -55,7 +58,7 @@ public interface WxPropertyContractService {

//Object getRentContractStatusInfo(WxPropertyContract record);

ResultData endRentContract(Long id);
//ResultData endRentContract(Long id);

//Object getRentContractList(WxPropertyContract record);

@@ -81,5 +84,9 @@ public interface WxPropertyContractService {
ResultData apply(WxPropertyContract wxPropertyContract,MallUserInfo user);
void outDateContract(WxMall wxMall);
WxPropertyContract getSimpleDetail(@Param("id") Long id);
void updatePropertyContract(WxPropertyContract record);

}

+ 12
- 26
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java Просмотреть файл

@@ -912,31 +912,6 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
// 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);
}
wxPropertyContract.setStatus(EnumRentContractStatus.TERMINATE.getCode());
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());
}
return new ResultData(Result.SUCCESS, "操作成功");
}


// @Override
// public Object getRentContractList(WxPropertyContract record) {
// Map<String, Object> params = new HashMap<>();
@@ -1128,7 +1103,8 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
if ((EnumRentContractStatus.DRAFT.getCode().intValue() == rentContract.getStatus().intValue()
&& EnumRentContractAppStatus.DEFAULT.getCode().intValue() == rentContract.getApplyStatus().intValue())
|| (EnumRentContractStatus.PERFORMANCE.getCode().intValue() == rentContract.getStatus().intValue()
&& EnumRentContractAppStatus.REJECT.getCode().intValue() == rentContract.getApplyStatus().intValue())
&& (EnumRentContractAppStatus.REJECT.getCode().intValue() == rentContract.getApplyStatus().intValue() ||
EnumRentContractAppStatus.SETBACK.getCode().intValue() == rentContract.getApplyStatus().intValue()))
) {
Integer bussinessType = (Integer) rentContract.getFlowParams().get("businessType");
if (null == bussinessType) {
@@ -1166,6 +1142,16 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
}
}

@Override
public WxPropertyContract getSimpleDetail(Long id) {
return wxPropertyContractMapper.selectById(id);
}

@Override
public void updatePropertyContract(WxPropertyContract record) {
wxPropertyContractMapper.updateById(record);
}
}




Загрузка…
Отмена
Сохранить